为什么Java Bean必须可序列化?

Mor*_*itz 14 java javabeans

Java Bean是否必须实现Serializable接口?

Bal*_*usC 15

它是Javabeans规范中描述的"典型"特性之一.

这是第2.1章的摘录什么是豆?

各个Java Bean在它们支持的功能方面会有所不同,但区分Java Bean的典型统一功能是:

  • 支持"内省",以便构建器工具可以分析bean的工作方式
  • 支持"自定义",以便在使用应用程序构建器时,用户可以自定义bean的外观和行为.
  • 支持"事件"作为一种简单的通信隐喻,而不是用于连接bean.
  • 支持"属性",用于定制和程序化使用.
  • 支持持久性,以便可以在应用程序构建器中自定义bean,然后将其自定义状态保存起来并稍后重新加载.

这是第5.5持久性摘要的摘录:

所有bean必须支持序列化或外部化.

实际上,它没有明确的功能.一般来说,只要没有实施就可以正常工作Serializable.无论何时你想将它们"普通"存储在硬盘上或通过网络发送"普通",它都会很有用.例如,当它是一个会话范围的bean,它将被存储在HTTP会话中,并且服务器已经被配置为在关闭/重启期间保持并恢复HTTP会话.无论如何,只要你NotSerializableException在消息中面对bean的完全限定类名,那么它就足以让它实现了Serializable.


Yuv*_*dam 13

是的.

根据定义 - Java bean就是一个可序列化的 POJO(普通的旧Java对象),带有无参数构造函数和带有getter/setter的私有字段.