【发布时间】:2014-02-24 09:04:56
【问题描述】:
我想就是否可以将子类标记为不可序列化获得您的意见/答案?
例如:- A 类 --> 实现可序列化标记接口
B 类 --> 扩展 A
根据继承,B 类自动符合序列化条件。他们是否可以将 B 类标记为不可序列化?
问候,
【问题讨论】:
标签: java serialization
我想就是否可以将子类标记为不可序列化获得您的意见/答案?
例如:- A 类 --> 实现可序列化标记接口
B 类 --> 扩展 A
根据继承,B 类自动符合序列化条件。他们是否可以将 B 类标记为不可序列化?
问候,
【问题讨论】:
标签: java serialization
Serializable 类的子类不可能是 non-Serializable。
虽然你可以通过让每个成员transient 来确保类中的任何内容都不会被序列化
【讨论】:
不,但你可以阻止它。在类中定义一个带有适当签名的 writeObject() 方法,并让它抛出 NotSerializableException。
【讨论】:
@Deepan :没有办法使子类不可序列化,但有一个技巧可以做到这一点:
class B extends A {
private void writeObject(ObjectOutputStream oos) throws IOException {
throw new NotSerializableException();
}
}
【讨论】: