Bits of Java (トップ)

目次  次へ

Serializable インターフェイスの実装

Serializable インターフェイスは直列化可能であるということ示しているだけで実装しなければならないメソッドはありません。 オブジェクトには状態と振る舞いがありますが直列化とはクラス情報とオブジェクトの状態を復元可能なバイト列で表現することでありこの直列化されたバイト列とロードされているクラスから元のオブジェクトに復元することが可能です。

下の Book クラスは Serializable を実装しており直列化可能です。

Book book = new Book("きまぐれロボット", "星新一");
まずこの book を直列化してファイルに保存します。 それから別のプログラムで復元を行ったとしても title の "きまぐれロボット"、 author の "星新一" は正しく復元されます。

/**************************** Book.java ****************************/
public class Book implements java.io.Serializable {
    protected String title;
    protected String author;

    public Book() {}

    public Book(String title, String author) {
        this.title  = title;
        this.author = author;
    }
//--------------------------------------------------------------------
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
//--------------------------------------------------------------------
    public String toString() {
        return "Book title:" + title + "  author:" + author;
    }
}