如果我们想要对一个对象进行序列化,我们可以简单地实现以下内容:
class MyClass implements Serializable
{
private static final long serialVersionUID = 12345L;
}
不需要额外的努力即可实现对象在文件中的读写,Java会自动处理一切。
另一方面,Externalizable
定义了显式序列化和反序列化方法,因此我们可以进行编程式操作。
这让我想到一个问题:如果对于Serializable
不需要额外的努力,为什么要将其作为接口来实现对象的序列化/反序列化,而不是默认情况下每个对象都可以进行序列化/反序列化呢?