JAvaはオブジェクトをストリームに変換し,ストリームをオブジェクトに変換する(cloneメカニズム+シーケンス化メカニズムを含む)
クラスは以下のように,ここではテストのために内部クラスのみを用いた.
オブジェクトをバイトに変換
バイトをオブジェクトに変換
しかし、これは非静的な内部クラスであり、外部クラスの参照を暗黙的に含むため、エラーが発生しました.
だからクラスを
それでいい
さらに、java自体のcloneメカニズムに問題があるため、これは良いクローンメカニズムです.
class Book implements Serializable {
int i = 1;
}
オブジェクトをバイトに変換
Book b = new Book();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = null;
objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(b);
byte[] bytes = byteArrayOutputStream.toByteArray();
バイトをオブジェクトに変換
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
ObjectInputStream objectInputStream = null;
objectInputStream = new ObjectInputStream(byteArrayInputStream);
Book book = (Book) objectInputStream.readObject();
しかし、これは非静的な内部クラスであり、外部クラスの参照を暗黙的に含むため、エラーが発生しました.
だからクラスを
static class Book implements Serializable {
int i = 1;
}
それでいい
さらに、java自体のcloneメカニズムに問題があるため、これは良いクローンメカニズムです.