-1

マーカー インターフェイスの動作を研究していたので、以下のリンクを使用して独自のマーカー インターフェイスを作成しました。

リンク

次に、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); シリアライズ可能かどうかを内部的にチェック??

どんな助けでも大歓迎です!!

4

1 に答える 1