Gur*_*lki 17 java oop inheritance serialization
我有一个实现Serializable的类.现在我扩展了这个类,我希望这个扩展类不是Serializable.那怎么办呢?
例如.我有
class A implements Serializable.
Run Code Online (Sandbox Code Playgroud)
我有
class B extends A.
Run Code Online (Sandbox Code Playgroud)
但我希望B类是Non Serializable.
fin*_*nnw 16
您无法删除该界面,但可以在运行时阻止序列化:
class B extends A {
private void writeObject(ObjectOutputStream oos) throws IOException {
throw new NotSerializableException();
}
}
Run Code Online (Sandbox Code Playgroud)
Jac*_*eow 14
正如其他人已经明确表示的那样,类的子Serializable类不可能是非类的Serializable.
如果你想要的是子类的属性不被序列化,一个选择是使它们都是瞬态的.
如果您需要更多(您不希望序列化超类字段),请覆盖writeObject(ObjectOutputStream)并readObject(ObjectInputStream)按照此处所述 - https://web.archive.org/web/20120626144013/http://java.sun.com/开发商/ technicalArticles/ALT /系列化