如果 B 类扩展了 A 类,B 类实现了 Serializable,并且 A 类有一个不可序列化的公共静态初始化变量...尝试使用 的writeObject()
方法编写类的 B 对象FileOutputStream
,将序列化从 A 继承的不可序列化成员将其与 B 类的其余变量一起写入文件中,否则会抛出NotSerializableException
?
问问题
62 次
1 回答
1
这是因为当您将对象写入输出流时不会保存静态字段。
从文档中:
对象的默认序列化机制写入对象的类、类签名以及所有非瞬态和非静态字段的值。对其他对象的引用(瞬态或静态字段除外)也会导致这些对象被写入。使用引用共享机制对单个对象的多个引用进行编码,以便对象的图形可以恢复到与原始对象写入时相同的形状。
于 2016-02-11T08:09:04.620 回答