经常在类名那有错,修改后,经常加了private static final long serialVersionUID = 1L; 这个是什么意思,加了有什么用?

解决方案 »

  1.   

    用来表明类的不同版本间的兼容性。如果你修改了此类, 要修改此值。否则以前用老版本的类序列化的类恢复时会出错。为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private static final long serialVersionUID这个属性,具体数值自己定义。 Window-->Preferences-->Java,将serializable class without serialVersionUID的设置由warning改为Ignore。然后Eclipse会重新编译程序,那些警告信息也就消失了 
      

  2.   

    实现了serializable 接口后加上该字段
    序列化运行时使用 serialVersionUID与每个可序列化类相关联,该序列号在反序列化过程中用于验证序列化对象的发送者和接收者是否为该对象加载了与序列化兼容的类
      

  3.   

    实现了serializable 接口后加上该字段,最好加上
      

  4.   

    需要注意,否则你在jdk1.5下打的jar。到1.6的时候可能就不能用了,会报错。
      

  5.   

    序列化时用到,serialVersionUID 就是这个类对象的id,和其他对象区别