NotSerializableException:意外
问题描述:
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?请尽量简单化,因为我的prorammming功能不如我喜欢的那么好。NotSerializableException:意外
答
发生这种情况的原因是您的(可序列化的)A
实例引用了B
的实例。 B
类不可序列化。这意味着尽管被声明为Serializable
,但A
实例不能被序列化。
的javadoc为Serializable
这样说:
“当遍历一个图形,对象,可能会遇到不支持的
Serializable
接口在这种情况下,NotSerializableException
会被抛出,将标识类。不可序列化的对象“。