我有一些代码,由不再与我们公司合作的人编写。他在代码中的很多地方都使用了Serialization(实现了Serializable),我认为这是不必要的。
在从代码中删除序列化之前,我应该采取哪些预防措施?
编辑 - 在下面添加
1)我们的代码不是通过网络访问的。无需流媒体。也没有Servlets。
2)没有对象到字节数组转换发生在任何地方
3)它只是一个在单个JVM中运行的独立应用程序
4)它只读取文件并将数据放入数据库。数据库可能是远程的
5)没有任何RMI / Corba组件
6)这些类的已知父类都不是Serializable
还有其他需要处理的案件吗?
答案 0 :(得分:2)
我很想离开它们,因为如果不使用它们会相对无害。 JDK中的许多类都是Serializable
,但这不是问题。
如果您已检查过这些类,则永远不会Serializable
,您可以将其删除。如果这很容易可靠地测试,你可以这样做。否则我不会冒险,只是不要在将来这样做。 (使课程Serializable
不是)
答案 1 :(得分:2)
在从代码中删除序列化之前,我应该采取哪些预防措施。
确保您拥有一套良好的单元测试和系统测试......并使用版本控制。
您还可以在代码库中搜索使用ObjectStream类的代码,但可以在库和框架代码中隐藏用法。
我同意彼得。删除implements Seralizable
不太可能实现任何有价值的东西。 (至少......不是从你经理的角度来看。)
答案 2 :(得分:1)
请注意,有些库需要类Serializable
。
因为它没有任何伤害我会把它留在代码中。