为什么readObject和writeObject是私有的,为什么我要显式地写瞬态变量?

为什么readObject和writeObject是私有的,为什么我要显式地写瞬态变量?,第1张

为什么readObject和writeObject是私有的,为什么我要显式地写瞬态变量?

(1)方法未在任何类或接口中声明。一个实现

Serializable
接口并需要
在序列化和反序列化过程中进行特殊特殊处理的类必须实现
这些方法,而序列化器/反序列化器将尝试 反映 这些方法。

这是Java中实际上是在javaDoc中定义API的一个相当奇怪的角落…但是, 如果 方法是在接口中定义的,那么它们
必须是

public
(我们无法实现接口方法的锁定)通过添加
private
修饰符)。

为什么私有 -javaDoc没有给出提示。也许将它们 指定 为私有的,因为除了实现者之外,没有其他类打算使用它们。 根据定义, 它们是
私有的

(2)的例子只显示 了如何
特殊处理工作。在此示例中,

size
是瞬态的,不会被序列化。但是现在我们引入了特殊的处理程序,该处理程序将的值添加
size
到流中。与非瞬态字段的常规方法的区别可能是结果流中元素的顺序(如果重要的话…)。

如果在超类中定义了瞬态字段,而子类想要对值进行序列化,则该示例可能有意义。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5560584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存