2017-04-11 170 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 ..: - 使引用變量的類來實現序列化