快速的问题,当将一个对象标记为可序列化的对象时,它是否需要为JavaBean?我的意思是,您可以序列化一个不是JavaBean的对象吗?有风险吗?如果要序列化一个对象,始终使它成为JavaBean是一种好习惯吗?
最佳答案
您正在以错误的方式看待它。 Java Bean是
1)实现Serializable
2)有一个无参数的构造函数
3)有私人成员和设置者/获取者
所以你的问题
将对象标记为可序列化的对象,是否需要是JavaBean?
倒退。通过实现接口,任何类都可以是可序列化的。并非所有可序列化的类都定义Java Bean。
我的意思是,您可以序列化一个不是JavaBean的对象吗?
是。
如果您始终将对象设为JavaBean,这是一种好习惯吗?
打算序列化吗?
在设计类时最好考虑数据封装。这意味着直接限制对字段的访问,并在适当的地方使用setter和getter。
当然,从API的角度来看,并不一定需要使用公共的无参数构造函数。
如果要使用依赖于类是Java Bean的库,则实际上只需要遵循Java Bean标准。