Java에서 정적 및 일시적인 필드는 직렬화되지 않습니다. 그러나 정적 필드의 초기화로 인해 생성 된 serialVersionUID가 변경된다는 것을 알게되었습니다. 예를 들어 static int MYINT = 3;
은 serialVersionUID를 변경합니다. 이 예제에서는 다른 버전의 클래스가 다른 초기 값을 가지므로 의미가 있습니다. 초기화가 serialVersionUID를 변경하는 이유는 무엇입니까? 예를 들어 static String MYSTRING = System.getProperty("foo");
도 serialVersionUID를 변경합니다.정적 초기화로 Java 직렬화
구체적으로 말해서, 내 질문은 왜 serialVersionUID가 변경되도록 초기화하는 것입니까? 내가 쳤던 문제는 시스템 속성 값 (getProperty)으로 초기화 된 새로운 정적 필드를 추가했다는 것입니다. 이 변경으로 인해 원격 호출에서 직렬화 예외가 발생했습니다.