シリアライズ/デシリアライズ


名称 変換内容
オブジェクト -> 符号化 シリアライズ
符号化 -> オブジェクト デシリアライズ


クラスをシリアライズ可能にするには


Serializable インターフェースを実装する。
http://docs.oracle.com/javase/jp/8/docs/api/java/io/Serializable.html (Java8)


特殊なメソッド 3つ


いずれもそれぞれのケースで独自の実装を行ないたい場合に実装する。

  1. void writeObject(ObjectOutputStream out)
  2. void readObject(ObjectInputStream in)
  3. void readObjectNoData()


writeObject() メソッド


  • ObjectOutputStream.defaultWriteObject() はデフォルトのシリアライズ処理を行なう。
  • カスタムシリアライズを実装する場合に使用する。
private void writeObject(ObjectOutputStream out) throws IOException {
    out.defaultWriteObject(); // デフォルトのシリアライズ処理

    ・・・ // 独自の実装を行なう
}


readObject() メソッド


  • カスタムデシリアライズを実装する場合に使用する。
  • ObjectInputStream.defaultReadObject() はデフォルトのデシリアライズ処理を行なう。
private void readObject(ObjectInputStream in) throws IOException {
    in.defaultReadObject(); // デフォルトのデシリアライズ処理

    ・・・ // 独自の実装を行なう
}


Hiroyuki Maeda

mae0003

blog comments powered by Disqus