即使在简单的POJO Java类中实现java.io.Serializable也是一种最佳实践?

一般来说,让简单的POJO Java类实现java.io.Serializable是一种最佳实践吗?即使在简单的POJO Java类中实现java.io.Serializable也是一种最佳实践?

回答:

一般不会。约书亚布洛赫说到implement Serializable judiciously。他描述的缺点摘要:

  • 后降低改变类实现的灵活性 - 序列化形式是类的API的一部分
  • 使一些错误和安全漏洞更容易 - 攻击者可以在访问类的内部串行化的字节流增加了测试负担 - 现在您必须测试序列化!
  • 减负子类的作者 - 他们必须让自己的子类序列化太

当然,有时你需要一个POJO实现Serializable接口,譬如说RMI,但如果需要的是不存在的,你的代码将没有它就更简单和更安全。

回答:

只有当你需要能够将它们串行化时。否则就是not worth the effort。

回答:

它更多地取决于需求。在Web应用程序的环境中,一些Web服务器(例如Tomcat 6)甚至需要序列化我们存储在会话中的对象的类。

回答:

我已经做了一件事来解决序列化表单不向后兼容的事实(比如在一个正在运行的系统上动态地重载一个类时),就是将我想要保存的字段加载到一个hashmap中,然后序列化。这样,即使缺少字段,我也可以始终反序列化数据。您可能需要提供缺失密钥的默认值,但比拼凑字段顺序要好。

以上是 即使在简单的POJO Java类中实现java.io.Serializable也是一种最佳实践? 的全部内容, 来源链接: utcz.com/qa/262976.html

回到顶部