java 反序列化期间 class 初始化的顺序

Order of class initialization during java deserialization

在反序列化过程中,子class是否保证在任何class实例对象从输入流恢复之前被初始化?具体来说,我有一个 subclass 带有我想在 superclass readObject() 方法中访问的静态字段。我可以指望 subclass 静态字段有效吗?

我不是BNF专家,但是protocol spec连载

classDescInfo:
  classDescFlags fields classAnnotation superClassDesc 

表明超class信息在class信息之后。所以看起来你可以依赖你的 subclass 静态字段。