In Java werden statische und transiente Felder nicht serialisiert. Ich fand jedoch heraus, dass die Initialisierung von statischen Feldern bewirkt, dass die generierte serialVersionUID geändert wird. Beispiel: static int MYINT = 3;
bewirkt, dass sich serialVersionUID ändert. In diesem Beispiel ist es sinnvoll, da verschiedene Versionen der Klasse unterschiedliche Anfangswerte erhalten. Warum ändert eine Initialisierung die serialVersionUID? Zum Beispiel bewirkt static String MYSTRING = System.getProperty("foo");
auch, dass sich die serialVersionUID ändert.Java-Serialisierung mit statischer Initialisierung
Um genau zu sein, ist meine Frage, warum die Initialisierung mit einer Methode die serialVersionUID ändert. Das Problem, das ich treffe, ist, dass ich ein neues statisches Feld hinzugefügt habe, das mit einem Systemeigenschaftswert (getProperty) initialisiert wurde. Diese Änderung verursachte eine Serialisierungsausnahme bei einem Remoteaufruf.