Javaの直列化・シリアライズ・serialVersionUID

Javaの直列化・シリアライズ・serialVersionUID

Javaで直列化という言葉をよく聞きますが、これはファイルへ保存(永続化)することが可能ですという意味です。(直列化=シリアライズ)

Serializableインタフェースをimplementする

では直列化可能なクラスはどうやって定義するかというと、java.io.Serializableインタフェースをimplementする必要があります。

class Hoge implements Serializable {
  private static final long serialVersionUID = -1826347656655013634L;
  private String name;

  Hoge(String name) {
    this.name = name;
  }

  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}

serialVersionUID

直列化可能なクラスではserialVersionUIDを設定する必要があります。

これは直列化可能なクラスのバージョンを管理する為で、違う値の場合、デシリアイズ(ファイルからインスタンスを復元)する際にエラーが発生してしまいます。

コメント

タイトルとURLをコピーしました