如何停止子类的序列化?

时间:2013-04-02 09:10:45

标签: java serialization

如果超类正在实现Serializable接口,如何停止子类的序列化?

3 个答案:

答案 0 :(得分:6)

您可以使用writeObject()方法来实现此目标。

您可以使用writeObject自定义对象的序列化行为,如果您不允许序列化Class,则覆盖此方法并抛出错误。

private void writeObject(java.io.ObjectOutputStream stream)
        throws IOException {
    throw new IOException('No serialization not allowed')
}

答案 1 :(得分:3)

实现readObject和writeObject方法,无条件地抛出IOException。丑陋但有效。

当然,这是糟糕的OO设计(它违反了Liskov Substitution Principle),但如果你真的需要这样做......

答案 2 :(得分:0)

使所有属性瞬态:)