編集の要約なし |
編集の要約なし |
||
(同じ利用者による、間の5版が非表示) | |||
4行目: | 4行目: | ||
* ストリームを使ってファイルに保存したり、ネットワークで伝送したりできる | * ストリームを使ってファイルに保存したり、ネットワークで伝送したりできる | ||
* クラスを直列化に対応させるために Serializable を実装する必要がある | * クラスを直列化に対応させるために Serializable を実装する必要がある | ||
* 実装後、[[ObjectOutputStream|ObjectOutputStream]]、[[ObjectInputStream|ObjectInputStream]]で自由に保存/復元できるようになる | |||
* Has-a関係にあるフィールドも Serializable を実装していれば連鎖して直列化される | |||
* 直列化したクラスのバージョンをシリアルバージョンUIDで管理する必要がある | |||
* クラスを修正し新しいバージョンになった後は、シリアルバージョンUIDの数値も変更する | |||
import java.io.*; | import java.io.*; | ||
public class Hero implements Serializable { | public class Hero implements Serializable { | ||
private static final long serialVersionUID = 39048750239745L; // ランダムな数値でOK | |||
... | ... |
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 ...