Serializable
スーパークラスがインターフェイスを実装している場合、サブクラスのシリアル化を停止するには?
3336 次
3 に答える
8
これを実現するには、 writeObject()メソッドを使用できます。
このメソッドをオーバーライドしてエラーをスローwriteObject
するシリアル化を許可しない場合は、オブジェクトのシリアル化動作をカスタマイズできます。Class
private void writeObject(java.io.ObjectOutputStream stream)
throws IOException {
throw new IOException('No serialization not allowed')
}
于 2013-04-02T09:13:18.867 に答える
6
を無条件にスローするメソッドを実装readObject
します。醜いが効果的。writeObject
IOException
残念ながら、サブクラスreadObject
を.writeObject
final
もちろん、これは疑わしい OO 設計です ( Liskov Substitution Principleに違反しています) が、本当にそれを行う必要がある場合は...
于 2013-04-02T09:14:54.880 に答える
-1
すべてのプロパティを一時的にします:)
于 2013-04-02T09:11:39.930 に答える