一般来说,让简单的POJO Java类实现java.io.Serializable是最佳做法吗?
答案 0 :(得分:13)
一般不是。约书亚布洛赫对implement Serializable judiciously说。他描述的缺点摘要:
当然,有时你需要一个POJO来实现Serializable,比如RMI,但如果不需要,你的代码会更简单,更安全。
答案 1 :(得分:4)
仅当您需要能够序列化它们时。否则为not worth the effort。
答案 2 :(得分:3)
这更多地取决于需求。在Web应用程序的上下文中,一些Web服务器(例如Tomcat 6)甚至强制要求序列化我们在会话中存储其对象的类。
答案 3 :(得分:0)
我已经做了一件事来解决序列化表单不向后兼容(比如在正在运行的系统上动态重新加载类)的事实,是将我要保存的字段加载到一个hashmap然后序列化它。这样,即使存在缺少的字段,我也可以始终反序列化数据。您可能必须提供缺失密钥的默认值,但这比搞乱字段顺序要好。