Module  java.desktop

Package java.beans

包含与开发bean相关的类 - 基于JavaBeans架构的组件。 bean中的一些类在应用程序中运行时使用。 例如,事件类被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的对象。 JDK中提供的从java.awt.Component所有类以及其所有属性都将自动具有持久java.awt.Component

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

PersistenceDelegate
200新新新新旗新新200新新新旗新新旗新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200 您的子类应该使用其对bean类型的了解,以提供任何创建bean并恢复其状态的StatementExpression
Statement
X- 包含一组方法参数。
Expression
用于返回值的方法的Statement的子类。

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

相关文档

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