本人在公司项目中看到某某的异常实现了Serializable,感觉有些奇怪,自己了解序列化也就三种方式下需要,网络传输、DB持久层、文件读取,大家说说这种情况下应该实现Serializable么?或者说使用Serializable可能带来的一些隐患,举些例子说明,谢谢各位了。

解决方案 »

  1.   

    能不实现Serializable当然是不实现得好,尤其是作为产品,一旦别人序列化了你的类,你想升级这个类就麻烦了不过做一些一次性项目倒是无所谓
    如LZ所说的异常,如果异常要从服务器端传到客户端就需要实现序列化,典型的比如RMI应用
      

  2.   

    通过网络传输对象
    比如webservice
      

  3.   


    serialVersionUID就是派这个用处的。否则的话JDK就不要升级了。
      

  4.   


    所以经常会出现Exception,说客户端和服务器端的serialVersionUID不一致
      

  5.   

    我看到jdk中很多类都实现了serializable接口
      

  6.   

    Exception实现了serializable接口,但是觉得那个人自己定义的异常已经继承了Exception还自己写实现serializable接口感觉太奇怪了