編集の要約なし |
編集の要約なし |
||
6行目: | 6行目: | ||
* 実装後、[[ObjectOutputStream|ObjectOutputStream]]、[[ObjectInputStream|ObjectInputStream]]で自由に保存/復元できるようになる | * 実装後、[[ObjectOutputStream|ObjectOutputStream]]、[[ObjectInputStream|ObjectInputStream]]で自由に保存/復元できるようになる | ||
* Has-a関係にあるフィールドも Serializable を実装していれば連鎖して直列化される | * Has-a関係にあるフィールドも Serializable を実装していれば連鎖して直列化される | ||
* | * 直列化したクラスのバージョンをシリアルバージョンUIDで管理する必要がある | ||
* | * クラスを修正し新しいバージョンになった後は、シリアルバージョンUIDの数値も変更する | ||
import java.io.*; | import java.io.*; |
2019年7月3日 (水) 00:00時点における最新版
< Java基本文法
- 直列化によって、インスタンス内の全データをバイナリに変換できる
- ストリームを使ってファイルに保存したり、ネットワークで伝送したりできる
- クラスを直列化に対応させるために Serializable を実装する必要がある
- 実装後、ObjectOutputStream、ObjectInputStreamで自由に保存/復元できるようになる
- Has-a関係にあるフィールドも Serializable を実装していれば連鎖して直列化される
- 直列化したクラスのバージョンをシリアルバージョンUIDで管理する必要がある
- クラスを修正し新しいバージョンになった後は、シリアルバージョンUIDの数値も変更する
import java.io.*; public class Hero implements Serializable { private static final long serialVersionUID = 39048750239745L; // ランダムな数値でOK ...