快速的问题,当将一个对象标记为可序列化的对象时,它是否需要为JavaBean?我的意思是,您可以序列化一个不是JavaBean的对象吗?有风险吗?如果要序列化一个对象,始终使它成为JavaBean是一种好习惯吗?

最佳答案

您正在以错误的方式看待它。 Java Bean是

1)实现Serializable
2)有一个无参数的构造函数
3)有私人成员和设置者/获取者

所以你的问题


  将对象标记为可序列化的对象,是否需要是JavaBean?


倒退。通过实现接口,任何类都可以是可序列化的。并非所有可序列化的类都定义Java Bean。


  我的意思是,您可以序列化一个不是JavaBean的对象吗?


是。


  如果您始终将对象设为JavaBean,这是一种好习惯吗?
  打算序列化吗?


在设计类时最好考虑数据封装。这意味着直接限制对字段的访问,并在适当的地方使用setter和getter。

当然,从API的角度来看,并不一定需要使用公共的无参数构造函数。

如果要使用依赖于类是Java Bean的库,则实际上只需要遵循Java Bean标准。

10-06 05:13
查看更多