反序列化序列化对象

时间:2017-04-11 17:48:44

标签: java

如果Base类没有实现Serializable接口,但是Derived类实现了Serializable接口,那么我是否能够对序列化对象进行deserialiaze?因为当我尝试这样做时,我得到了ClassNotFoundException。

2 个答案:

答案 0 :(得分:0)

ClassNotFound意味着所需的.class文件在您尝试反序列化的JVM的上下文中存在(因此这是类路径设置问题!)

然后:如果所有不可序列化的超类都包含无参数的默认构造函数,那么只会工作(有关详细信息,请参阅here)。

答案 1 :(得分:0)

是的,您将无法反序列化,因为您的成员变量属于引用类型,如果它不实现可序列化,则序列化后引用变量的值在流中将为null。因此,在反序列化时,Java在内部调用 Class.forname()以将该引用变量返回到对象中。由于它为null,因此您将获得ClassNotFoundException。

Soltn ..: - 使引用变量类实现可序列化