import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
try ( ObjectOutputStream output =
new ObjectOutputStream(new FileOutputStream("object.dat")); ) {
output.writeObject(new A());
}
}
}
class A implements Serializable {
B b = new B();
}
class B {
}为什么在下面的代码中会出现javaNotSerializableException?请尽量简单化,因为我的编程能力并不像我所希望的那样有充分的基础。
发布于 2015-04-06 20:09:19
这是因为您的(可序列化的) A实例引用了B的一个实例。B类不可序列化。这意味着即使被声明为Serializable,A实例也不能被序列化。
Serializable的javadoc是这样说的:
“当遍历图形时,可能会遇到不支持
Serializable接口的对象。在这种情况下,将引发NotSerializableException并将标识不可序列化对象的类。”
https://stackoverflow.com/questions/29470948
复制相似问题