如果超类正在实现Serializable
接口,如何停止子类的序列化?
答案 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)
使所有属性瞬态:)