在Java中,静态和瞬态字段不是序列化的。但是,我发现静态字段的初始化会导致生成的serialVersionUID被更改。例如,static int MYINT = 3;
会导致serialVersionUID发生更改。在这个例子中,这是有道理的,因为不同版本的类会得到不同的初始值。为什么初始化会更改serialVersionUID?例如,static String MYSTRING = System.getProperty("foo");
也会导致serialVersionUID发生更改。静态初始化的Java序列化
具体而言,我的问题是为什么使用方法进行初始化会导致serialVersionUID更改。我碰到的问题是,我添加了一个新的静态字段,它使用系统属性值(getProperty)进行了初始化。该更改导致远程调用中的序列化异常。