Eclipse auto-generation of serialVersionUID with each change

Touko picture Touko · Sep 23, 2009 · Viewed 9.5k times · Source

Eclipse nicely generates the serialVersionUID for me. But this seems to be passive code generation as the id won't be automatically updated as I change the file unless I do the generation again.

Is there some way to have the serialVersionUID being generated every time I change the contents? The "Save Actions" don't seem to include such an option - has somebody found some way to do this?

It would be nice that it could be combined with the IDE save actions or something similar so that I could revert the change if I were doing that doesn't affect the serialization.

Best regards, Touko

EDIT: @gustafc: There are two main points for this:

  • If I have understood correctly, different compilers may end up with different values for serialVersionUID
    • From Serializable API :However, it is strongly recommended that all serializable classes explicitly declare serialVersionUID values, since the default serialVersionUID computation is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected InvalidClassExceptions during deserialization
  • I'm using kind of command-pattern like objects doing things at server. So, even though the object content isn't changed, it would be nice to catch the cases when the class content is different at client and server.
    • But on thinking another time, this wuoldn't probably work with auto-generated value since only the content changes would change that? So, actually I'd like to have an auto-incremented serialVersionUID

Does this sound sensible?

Summa summarum, after more thinking, an auto-incremented serialVersionUID incremented at each change would be even better...

Answer

Jesper picture Jesper · Sep 23, 2009

There is no standard functionality in Eclipse to do this.