栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java:何时在序列化期间添加readObjectNoData()?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:何时在序列化期间添加readObjectNoData()?

Java对象序列化规范中的readObjectNoData部分似乎很有趣(请参阅下文)。

您对问题的编辑给出了一个完美的例子。如果

Employee
serialized
,当它并未扩大
Person
,后来
deserialized
当它没有那么
Person
部分将被初始化为空字符串,0岁。使用此方法,可以将它们分别初始化为“名称”和1。

对于可序列化的对象,在子类实例被反序列化并且序列化流未将所讨论的类列为反序列化对象的超类的情况下,readObjectNoData方法允许类控制其自身字段的初始化。在接收方使用与发送方不同的反序列化实例类的版本,并且接收方的版本扩展了发送方版本未扩展的类的情况下,可能会发生这种情况。如果序列化流已被篡改,也会发生这种情况。因此,尽管源流“敌对”或不完整,但readObjectNoData对于正确初始化反序列化的对象很有用。

private void readObjectNoData() throws ObjectStreamException;

每个可序列化的类都可以定义自己的readObjectNoData方法。如果可序列化的类未定义readObjectNoData方法,则在上述情况下,该类的字段将被初始化为其默认值(如JavaTM语言规范第二版第4.5.5节中列出);当引入了对readObjectNoData方法的支持时,此行为与JavaTM
2
SDK标准版1.4之前的ObjectInputStream的行为一致。如果可序列化的类确实定义了readObjectNoData方法,并且出现了上述情况,



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441044.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号