About generated serialVersionUID in Eclipse

谁说胖子不能爱 提交于 2019-12-05 00:45:28

No, it won't create any problem in any of your two circumstances:

  • you can manually specify it incrementally
  • you can let Eclipse assign them random generated values
  • you can keep them all 1L for different classes

The purpose of the serial UID is to forbid serialization and deserialization of same classes in different versions, especially when there is not forward compatibility (eg. new version of the class cannot be serialized/unserialized by a previous definition).

This is a circumstance that occurs really rarely, especially when working with your own project which are not part of big frameworks that rely on serialization. So you can safely do whatever you want.

The situation in which you want to have different serials for the same class is when you are updating a class and you want to forbid the serialization of it with a previous declaration of the SAME class.

Let me answer your questions backwards:

Add generated serial version ID... is it safe? Answer: Yes

If you manually specify 1L, 2L, 3L is that a problem: No more of a problem than making them all 1 or any other number

generating serial ids serially: The answer is there is no built-in mechanism for doing this. The fact that you are asking this question leads me to believe you don't know what the serialVersionUID is for. Even if you have already read up on what this does, you should read it again.

You shouldn't do this at all. The idea is that you keep the serialVersionUID constant for as long as possible during the evolution of a class, by observing the rules in the Object Versioning section of the Object Serialization Specification.

Your 'programming style' has nothing to do with it. It is a matter of using the thing for the purpose it was designed for. It is not designed for the purpose you are using it for. Source code control systems can do that for you.

the java serialization supports that all classes have the same serialVersionUID

this is use for version control so that serialized objects from a older definition are incompatible with a newer version

check http://java.sun.com/developer/technicalArticles/Programming/serialization/ for the specifics (scroll down to "version control")

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!