title: why is not safe to rely on ObjectStreamClass.getSerialVersionUID?
body: <p>The java spec says:  "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"</p>
  
  <p>Please could someone dig into this? The getSerialVersionUID() method does reflection, and reflection is used commonly everywhere, so what is compiler-dependent?</p>