刚学Java
调试一个小程序时,编译器给出警告:The serializable class xx does not declare a static final serialVersionUID field of type long 。看不明白,能解释一下吗,可能是哪出错了?
谢谢!
调试一个小程序时,编译器给出警告:The serializable class xx does not declare a static final serialVersionUID field of type long 。看不明白,能解释一下吗,可能是哪出错了?
谢谢!
可以随便写一个,在eclipse中它替你生成一个. 其实如果你没有考虑到兼容性问题时,那就把它关掉吧.
其实有这个功能是好的.
只要任何类别实作了Serializable这个介面,
如果没有加入serialVersionUID,Eclipse都会给你warning提示,
这个serialVersionUID为了让该类别Serializable後兼容.考虑一下,如果今天你的类Serialized存到硬碟里,
可是後来你却更改了类别的field(增加或减少或改名).
当你Deserialize时,就会出现Exception.这样就会做成不兼容性的问题.但当serialVersionUID相同时,它就会将不一样的field以type的预设值Deserialize.
这个可以避开不兼容性的问题.自於你说内存的问题,我觉得没差多少吧.
------------------
网上找的
private static final long serialVersionUID = 1L;
就可以了
欢迎java和jsp的爱好者加入!
共同探讨,共同进步
群号:8137004