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

2022-09-02 12:41:26

Java Bean 是否有必要实现该接口?Serializable


答案 1

它是 Javabeans 规范中描述的“典型”功能之一。

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

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

  • 支持“内省”,以便构建器工具可以分析 Bean 的工作原理
  • 支持“自定义”,以便在使用应用程序构建器时,用户可以自定义Bean的外观和行为。
  • 支持将“事件”作为简单的通信隐喻,而不是可以用来连接豆子。
  • 支持“属性”,包括自定义和编程使用。
  • 支持持久性,以便可以在应用程序构建器中自定义 Bean,然后将其自定义状态保存下来并在以后重新加载。

以下是第 5.5 章持久性摘要的摘录:

所有 Bean 都必须支持序列化或外部化。

在实践中,它并不是明确需要它才能运行。一般来说,它也可以正常工作,而无需实现Serializable。但是,每当您想要将它们“普通”存储在硬盘上或通过网络发送“普通”时,它都很有用。例如,当它是一个会话范围的Bean,它将存储在HTTP会话中,并且服务器被混淆以在关闭/重新启动期间保留和恢复HTTP会话。无论如何,每当您遇到消息中带有bean的完整限定类名的NotSerializableException时,它就足以让它实现。Serializable


答案 2

是的

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


推荐