import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
private Child child;
public Child getChild() {
return child;
}
public void setChild(Child child) {
this.child = child;
}
}
interface Child {
}
}
class NonSerializableChild implements Child {
}
public class Main {
doNull();
doSerializable();
doNonSerializable();
}
/**
* child が null 状態でシリアライズ/デシリアライズ
*/
private static void doNull() {
Parent obj = new Parent();
byte[] res = serialize(obj);
deserialize(res);
}
/**
* child にシリアライズ可能なオブジェクトをセットしてシリアライズ/デシリアライズ
*/
private static void doSerializable() {
Parent obj = new Parent();
obj.setChild(new SerializableChild());
byte[] res = serialize(obj);
deserialize(res);
}
/**
* child にシリアライズ可能でないオブジェクトをセットしてシリアライズ/デシリアライズ
*/
private static void doNonSerializable() {
Parent obj = new Parent();
obj.setChild(new NonSerializableChild());
byte[] res = serialize(obj);
deserialize(res);
}
private static void deserialize(byte[] serialized) {
System.
out.
println(res.
toString()); }
}
private static byte[] serialize(Parent obj) {
os.writeObject(obj);
}
byte[] serialized = bas.toByteArray();
return serialized;
}
}