title: Why does the serialVersionUID field exist?
body: <p>It has baffled me from the launch of the <code>Serializable</code> interface why I have to incorporate this field in all of my classes.  I understand that this interface needs a unique identifier to mark the class but why cant they generate this at run-time. For instance they could generate it using an MD5 hash of the fully-qualified class name or a similar methodology used to handle duplicates in their rare occurrence (Which is, I'm sure, what eclipse does when asked to generate the id anyway).</p>
  
  <p>So what I'm asking (no this post isn't just a rant against the standard library) is exactly how the serialization field is used by the framework?</p>
  
  <p>The reason I would like to know because I am going to try to create an Aspect (in AspectJ or other language) that will add the serialVersionUID field using an MD5 hash and is able to handle collisions in a way that is acceptable to the API. </p>
  
  <p>I will post the results if I can get it working.</p>