私は次のような記事を読んでいました.クラスのスーパークラスがすでにJavaでシリアライズ可能なインターフェースを実装している場合、Javaですでにシリアライズ可能です。インターフェースを未実装にすることはできないため、非シリアライズ可能なクラスにすることは実際には不可能ですが、新しいクラスのシリアル化を回避する方法。Java シリアライゼーションを回避するには、クラスに writeObject () および readObject () メソッドを実装し、それらのメソッドから NotSerializableException をスローする必要があります。これは、上記の質問で説明した Java シリアライゼーション プロセスをカスタマイズするもう 1 つの利点であり、通常、インタビューが進むにつれて、フォローアップの質問として尋ねられます。
たとえば、スーパークラスがあります..
class Animal implements Serializable
{
int weight = 42;
}
and there is a subclass...
class Dog extends Animal
{
private void writeObject(ObjectOutputStream o)
throws IOException, ClassNotFoundException
{
//throw nonserializable exception
}
private void readObject(ObjectInputStream o)
throws IOException, ClassNotFoundException
{
//throw nonserializable exception
}
}
上記の readobject() および writeobject() 内の Dog クラスで見たように、シリアル化できない例外をスローすることを示すコードをどのように記述できますか..シリアル化できない例外をスローするようなものですか...アドバイスしてください..