W języku Java statyczne i przejściowe pola nie są serializowane. Jednak dowiedziałem się, że inicjalizacja pól statycznych powoduje, że wygenerowany serialVersionUID zostanie zmieniony. Na przykład static int MYINT = 3;
powoduje zmianę identyfikatora serialVersionUID. W tym przykładzie ma to sens, ponieważ różne wersje tej klasy otrzymywałyby różne wartości początkowe. Dlaczego każda inicjalizacja zmienia identyfikator serialVersion? Na przykład static String MYSTRING = System.getProperty("foo");
powoduje również zmianę identyfikatora serialVersionUID.Serializacja Java z inicjalizacją statyczną
Moje pytanie brzmi: dlaczego inicjalizacja za pomocą metody powoduje, że serialVersionUID ulega zmianie. Problemem, który uderzyłem, było dodanie nowego pola statycznego, które zostało zainicjalizowane wartością właściwości systemu (getProperty). Ta zmiana spowodowała wyjątek serializacji na zdalnym wywołaniu.