emi*_*lly 7 java serialization
public class Employee2 extends Employee1 {}
public class Employee1 extends Employee0 {}
public class Employee0 {}
Run Code Online (Sandbox Code Playgroud)
现在我序列化Employee2类和
get the error java.io.NotSerializableException: Employee2
Run Code Online (Sandbox Code Playgroud)
现在如果将Employee1类更改为def
public class Employee1 extends Employee0 implements java.io.Serializable {}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但请注意Employee0仍然没有实现Serializable
Base类必须实现Serializable来序列化子类吗?如果是,为什么它只强制用于Employee1而不用于Employee0?
根据我的例子,它看起来像是,但根据网上的其他文章,这不应该是强制性的.那我在这里缺少什么?
如果要序列化Employee2对象,Employee2必须实现Serializable(最好是直接而不是继承它).你没有得到异常,因为Employee1它不是可序列化的,你得到它是因为Employee2不是,你还是试图序列化它.
Employee1并且Employee0不一定必须实现Serializable,但如果它们不必,则必须具有无参数构造函数(以便序列化程序可以实例化重构的Employee2对象).
| 归档时间: |
|
| 查看次数: |
8596 次 |
| 最近记录: |