En Java, los campos estáticos y transitorios no se serializan. Sin embargo, descubrí que la inicialización de campos estáticos causa que el serialVersionUID generado se cambie. Por ejemplo, static int MYINT = 3;
hace que el serialVersionUID cambie. En este ejemplo, tiene sentido porque diferentes versiones de la clase obtendrían valores iniciales diferentes. ¿Por qué cualquier inicialización cambia el serialVersionUID? Por ejemplo, static String MYSTRING = System.getProperty("foo");
también hace que el serialVersionUID cambie.serialización de Java con inicialización estática
Para ser específico, mi pregunta es por qué la inicialización con un método hace que el serialVersionUID cambie. El problema que golpeé es que agregué un nuevo campo estático que se inicializó con un valor de propiedad del sistema (getProperty). Ese cambio causó una excepción de serialización en una llamada remota.