当您看到序列化Java对象时,您应该想到什么

时间:2013-01-16 15:37:16

标签: java serialization

我有一些代码,由不再与我们公司合作的人编写。他在代码中的很多地方都使用了Serialization(实现了Serializable),我认为这是不必要的。

在从代码中删除序列化之前,我应该采取哪些预防措施?

编辑 - 在下面添加

1)我们的代码不是通过网络访问的。无需流媒体。也没有Servlets。
2)没有对象到字节数组转换发生在任何地方 3)它只是一个在单个JVM中运行的独立应用程序 4)它只读取文件并将数据放入数据库。数据库可能是远程的 5)没有任何RMI / Corba组件
6)这些类的已知父类都不是Serializable

还有其他需要处理的案件吗?

3 个答案:

答案 0 :(得分:2)

我很想离开它们,因为如果不使用它们会相对无害。 JDK中的许多类都是Serializable,但这不是问题。

如果您已检查过这些类,则永远不会Serializable,您可以将其删除。如果这很容易可靠地测试,你可以这样做。否则我不会冒险,只是不要在将来这样做。 (使课程Serializable不是)

答案 1 :(得分:2)

  

在从代码中删除序列化之前,我应该采取哪些预防措施。

确保您拥有一套良好的单元测试和系统测试......并使用版本控制。

您还可以在代码库中搜索使用ObjectStream类的代码,但可以在库和框架代码中隐藏用法。

我同意彼得。删除implements Seralizable不太可能实现任何有价值的东西。 (至少......不是从你经理的角度来看。)

答案 2 :(得分:1)

请注意,有些库需要类Serializable

因为它没有任何伤害我会把它留在代码中。