如果类 B 扩展类 A,
则类 B 实现可序列化,并且类 A 具有不可序列化的公共静态初始化变量...尝试使用FileOutputStream
方法编写类的 B 对象writeObject()
,将序列化来自 A 的不可序列化继承成员以将其与类 B 的其余变量一起写入文件中,还是会抛出NotSerializableException
?
这之所以有效,是因为当您通过输出流写入对象时,不会保存静态字段。
从文档中:
对象的默认序列化机制写入 对象、类签名和所有非瞬态的值 和非静态字段。对其他对象的引用(在 瞬态或静态字段)也会导致写入这些对象。 使用引用对单个对象的多个引用进行编码 共享机制,以便可以将对象的图形还原到 形状与原作时相同。