Who*_*AmI 4 java serialization servlets web-applications serializable
我无法理解SerializationJava 1.6 的基础知识.
下面是Dog包含Class的实例变量的CollarClass:
Dog.java
public class Dog implements Serializable {
private Collar collar;
public Collar getCollar() {
return collar;
}
public void setCollar(Collar collar) {
this.collar = collar;
}
}
Run Code Online (Sandbox Code Playgroud)
Collar类没有实现Serializable接口,如下所示:
Collar.java
public class Collar {
private int size;
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试序列化时,Dog为什么它不抛出NotSerializableException?根据合同,整个对象图应该实现,Serializable但我的Collar班级不满足.
以下是此演示的主要方法:
public static void main(String[] args) {
try {
FileOutputStream fs = new FileOutputStream("E:\\test.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
Dog dog = new Dog();
// No exception thrown here, WHY?
// test.ser file is getting created properly.
os.writeObject(dog);
FileInputStream fis = new FileInputStream("E:\\test.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Dog dog1 = (Dog)ois.readObject();
// Here I am getting a null Collar object
Collar c1 = dog1.getCollar();
Run Code Online (Sandbox Code Playgroud)
请解释一下,在尝试实施所有理论上的东西时,我完全感到困惑:(
可能是因为你dog没有collar!
试试吧
Dog dog = new Dog();
dog.setCollar(new Collar());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |