2017-04-11 169 views
1

如果Base类未实现Serializable接口,但Derived类实现Serializable接口,是否可以对序列化对象进行反序列化?因为当我尝试这样做时,我得到了ClassNotFoundException。反序列化序列化对象

回答

0

ClassNotFound的意味着所需的.class文件确实不 JVM的情况下存在在您尝试反序列化

然后(所以这是一个classpath设置问题!):这将如果所有不是Serializiable的超类包含无参数默认构造函数,则只有工作(有关更多信息,请参阅here)。

+0

谢谢你的信息 –

+0

欢迎您。并且只是为了确保你不会错过 - 你可以接受一个(并达到upvote水平后)upvote一个或多个答案;-) – GhostCat

0

是的,您将无法反序列化,因为您的成员变量是引用类型,并且如果它没有实现可序列化,那么序列化后引用变量的值将为空。因此,在反序列化过程中,Java在内部调用Class.forname()以将该引用变量返回到对象中。由于它是空的,你将得到ClassNotFoundException。

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