我已阅读以下文章SO
:
但我的问题是Externalizable
,与serializable
.
可以通过提供我们自己的and实现来自定义实现Serialization
的 a 。那么使用 和定制和实现的目的是什么。使用的真正好处是什么。我已经阅读了各种支持自定义的链接(包括上面的链接)。但我没有看到一个明显的赢家或无法使用. 很高兴看到一个例子。class
Serializable
writeObject
readObject
Externalizable
ReadExternal
writeExternal
Externalizable
Externalizable
serialization
Externalizable
Serializable
为了更清楚起见,从此处提取了以下代码段:
当一个class
实现Serializable interface
时,它会向这些提供信息JVM
,instances
这些信息classes
可以被序列化。除此之外,还有一个特别说明JVM
“在实现 Serializable 的类中查找以下两个方法。如果找到,则调用该方法并继续序列化过程,否则直接遵循标准序列化协议”
所以这让我们有机会编写这两个方法:
private void writeObject(ObjectOutputStream out) throws IOException;
,
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;
里面Class
那个实现Serializable
,你得到一个serialization
过程的钩子。您可以在这两种方法中编写自定义代码并自定义serialization
.