Skip navigation links
Java™ Platform
Standard Ed. 8

Package java.beans

包含与开发 bean相关的类 - 基于JavaBeans架构的组件。

See: 描述

Package java.beans Description

包含与开发bean相关的类 - 基于JavaBeans架构的组件。 bean中的一些类在应用程序中运行时使用。 例如,事件类由bean使用,它们触发属性和否决变更事件(参见PropertyChangeEvent )。 但是,此包中的大多数类都是由bean编辑器(即用于自定义和组合bean以创建应用程序的开发环境)使用的。 特别地,这些类帮助bean编辑器创建一个用户界面来定制该bean。 例如,bean可能包含bean编辑器可能不知道如何处理的特殊类型的属性。 通过使用PropertyEditor接口,bean开发人员可以为此特殊类型提供编辑器。

为了最小化bean使用的资源,bean编辑器使用的类只有在编辑bean时加载。 当bean在应用程序中运行时,并不需要它们,因此不会被加载。 这些信息保存在所谓的bean-info(参见BeanInfo )中。

除非明确说明,否则空值或空字符串不是此程序包中方法的有效参数。 如果使用这些参数,可能会看到异常。

长期坚持

从v1.4开始, java.beans包提供了对长期持久性的支持 - 读取和写入一个bean作为其属性值的文本表示形式。 属性值被视为bean,并被递归地读取或写入以捕获它们的公开可用状态。 这种方法适用于长期存储,因为它仅依赖于公共API,而不是可能发生变更的私有实现。

Note: The persistence scheme cannot automatically instantiate custom inner classes, such as you might use for event handlers. By using the EventHandler class instead of inner classes for custom event handlers, you can avoid this problem.

您分别使用XMLDecoderXMLEncoder类读取和写入XML格式的bean。 持久性方案的一个显着特征是在bean中读取不需要bean的特殊知识。

另一方面,写出一个bean有时需要bean的类型的特殊知识。 如果bean的状态只能使用无参数构造函数和public getter和setter方法表示,则不需要特殊的知识。 否则,bean需要一个自定义持久性委托 - 负责编写特定类型的bean的对象。 java.awt.Component的JDK中提供的所有类以及其所有属性都将自动生成持久代理。

如果您需要(或选择)为bean提供持久代理,则可以使用DefaultPersistenceDelegate实例或创建自己的PersistenceDelegate子类来PersistenceDelegate 如果bean需要持久性委托的唯一原因是因为要使用属性值作为参数调用bean的构造函数,则可以使用单参数DefaultPersistenceDelegate构造函数创建bean的持久性委托。 否则,您需要实现您自己的持久代理,您可能需要以下类:

PersistenceDelegate
所有持久代理从其中下降的抽象类。 您的子类应使用其对bean类型的了解,以提供创建bean并恢复其状态所需的任何StatementExpression
Statement
表示对对象的单个方法的调用。 包含一组方法参数。
Expression
Statement的子类用于返回值的方法。

创建持久代理后,您可以使用setPersistenceDelegate方法进行XMLEncoder

相关文档

有关概述,架构和教程文档,请参阅:

Skip navigation links
Java™ Platform
Standard Ed. 8