マーカー インターフェイスの動作を研究していたので、以下のリンクを使用して独自のマーカー インターフェイスを作成しました。
次に、Serializable インターフェイスの機能を比較しています。
今、シリアル化可能なインターフェイスを拡張しないクラス Employee があります
public class Employee {
public String name;
public String address;
public int number;
}
次に、オブジェクトをシリアル化しようとする別のクラス SerializeDemo があります
public class SerializeDemo {
public static void main(String [] args)
{
Employee e = new Employee();
e.name = "AAAA";
e.address = "BBB, India";
e.number = 101;
try
{
FileOutputStream fileOut = new FileOutputStream("employee.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(e); //Error on this line( ERRORLINE)
out.close();
fileOut.close();
System.out.printf("Serialized data is saved in /tmp/employee.ser");
}catch(IOException i)
{
i.printStackTrace();
}
}
}
Error : java.io.NotSerializableException: com.serializable.Employee
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)......
ERRORLINE 行を削除すると、コンパイルして新しいファイルが作成されますが、オブジェクトはありません。out.writeObject(e); の方法を知りたかっただけです。エラーにつながります.ObjectOutputStreamはSerializableインターフェースを実装していますか、それともSerializableインターフェースを実装する他のクラスに拡張されていますか.
どのように out.writeObject(e); シリアライズ可能かどうかを内部的にチェック??
どんな助けでも大歓迎です!!