2015-04-06 81 views
0
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:意外

回答

0

发生这种情况的原因是您的(可序列化的)A实例引用了B的实例。 B类不可序列化。这意味着尽管被声明为Serializable,但A实例不能被序列化

javadocSerializable这样说:

“当遍历一个图形,对象,可能会遇到不支持的Serializable接口在这种情况下,NotSerializableException会被抛出,将标识类。不可序列化的对象“。