在 java 中将子类设置为不可序列化
2022-09-02 02:52:26
我有一个实现可序列化的类。现在我扩展了这个类,我希望这个扩展类是不可序列化的。那么该怎么做呢?
例如。我有
class A implements Serializable.
我有
class B extends A.
但我希望类 B 是不可序列化的。
我有一个实现可序列化的类。现在我扩展了这个类,我希望这个扩展类是不可序列化的。那么该怎么做呢?
例如。我有
class A implements Serializable.
我有
class B extends A.
但我希望类 B 是不可序列化的。
您无法删除接口,但可以防止在运行时进行序列化:
class B extends A {
private void writeObject(ObjectOutputStream oos) throws IOException {
throw new NotSerializableException();
}
}
正如其他人已经明确指出的那样,类的子类不可能是非类。Serializable
Serializable
如果希望子类的属性不被序列化,一种选择是使它们全部瞬态化。
如果您需要更多(您不希望序列化超类字段),请重写,如此处所述 - https://web.archive.org/web/20120626144013/http://java.sun.com/developer/technicalArticles/ALT/serializationwriteObject(ObjectOutputStream)
readObject(ObjectInputStream)