在不保存Object状态的情况下实现VO中的序列化?

时间:2012-05-03 09:19:32

标签: java serialization

目前在项目中,很少有VO(值对象)类通过实现Serializable接口进行序列化。这个类只有getter和setter。 没有在代码中进一步执行writeObject或保存对象状态。

是否有任何价值使我的VO Serializable有意义?

1 个答案:

答案 0 :(得分:0)

让我们来看一个简单的案例:假设一个实体包装了一些值对象,你想用例如Hibernate框架来管理你的实体。

Hibernate可能需要可序列化的类:

  

该类应该实现Serializable。严格来说,这是   不是要求。但是,在实践中,你通常会想要你的   Hibernate对象是可序列化的,因此它们可以(可能)   迁移到多处理器群集周围或保存并恢复   Web服务器重启等。

当然,您不必使用精确的writeObject和readObject方法,因为默认序列化使用反射来保存和恢复对象状态。

实际上,当您想要自定义序列化时,这些方法很有意思,比如在反序列化期间使用精确的默认值初始化字段(存在于客户端类中但不存在于服务器类中)。