代码之家  ›  专栏  ›  技术社区  ›  Moritz

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

  •  13
  • Moritz  · 技术社区  · 14 年前

    JavaBean是否需要实现 Serializable 接口?

    2 回复  |  直到 7 年前
        1
  •  12
  •   BalusC    14 年前

    它是“典型”功能之一,如 Javabeans specification .

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

    单独的Java bean将在它们支持的功能上有所不同,但是典型的统一特征。 区分JavaBean的有:

    • 支持__内省_以便构建工具可以分析bean的工作方式
    • 支持_自定义_以便在使用应用程序生成器时,用户可以 自定义bean的外观和行为。
    • 支持_事件_作为一种简单的交流隐喻,可以用来连接 豆子。
    • 对__properties__的支持,包括定制和编程使用。
    • 支持持久性,以便可以在应用程序生成器中定制be an,以及 然后保存它的自定义状态,稍后重新加载。

    这是章节的摘录 5.5持续性总结 :

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

    在实践中,它不需要显式地发挥作用。一般来说,它也可以在不执行的情况下正常工作 Serializable . 无论何时,只要您想将它们“普通”存储在硬盘上或通过网络发送“普通”,它都非常有用。例如,当它是一个会话范围的bean,将存储在HTTP会话中,并且服务器被配置为在关闭/重新启动期间保持和恢复HTTP会话。不管怎样,当你面对 NotSerializableException 在消息中使用bean的完全限定类名,那么它就足够让它实现了 可串行化的 .

        2
  •  12
  •   Steve Kuo    12 年前

    是的 .

    根据定义,Java bean正好是 可串行化的 POJO(普通老Java对象),具有无参数构造函数和私有字段与GETS/SETTER。