如何创建一个非序列化的子类?

时间:2014-02-24 09:04:57

标签: java serialization

我想就是否有可能将子类标记为不可序列化的问题得到您的意见/答案?

  

Ex: - A类 - >实现Serializable标记接口
       B类 - >扩展A

根据继承,B类自动符合序列化条件。他们是否可以将B类标记为不可序列化?

此致

3 个答案:

答案 0 :(得分:0)

  

Serializable类的子类不可能是非Serializable。

虽然你可以确保通过让每个成员transient

来序列化任何类

答案 1 :(得分:0)

不,但你可以阻止它。使用适当的签名在类中定义writeObject()方法,并使其抛出NotSerializableException。

答案 2 :(得分:0)

@Deepan:无法使子类不可序列化,但有一个技巧可以做到这一点:

class B extends A {
    private void writeObject(ObjectOutputStream oos) throws IOException {
        throw new NotSerializableException();
    }
}