JavaTM Platform
Standard Ed. 6

软件包 java.beans

包含与开发 beans 有关的类,即基于 JavaBeans TM 架构的组件。

请参见:
          描述

接口摘要
AppletInitializer 此接口设计用于与 java.beans.Beans.instantiate 联合使用。
BeanInfo 希望提供有关其 bean 的显式信息的 bean 实现者可以提供某个 BeanInfo 类,该类实现此 BeanInfo 接口并提供有关其 bean 的方法、属性、事件等显式信息。
Customizer customizer 类提供一个用来自定义目标 Java Bean 的完全自定义 GUI。
DesignMode 此接口由 java.beans.beancontext.BeanContext 的实例实现或委托,以便将当前的 "designTime" 属性传播到 java.beans.beancontext.BeanContextChild 实例的嵌套层次结构。
ExceptionListener ExceptionListener 是在发生内部异常时获得通知。
PropertyChangeListener 无论 bean 何时更改 "bound" 属性,都会激发一个 "PropertyChange" 事件。
PropertyEditor PropertyEditor 类为希望允许用户编辑某个给定类型的属性值的 GUI 提供支持。
VetoableChangeListener 只要 bean 更改 "constrained" 属性,都将会激发一个 VetoableChange 事件。
Visibility 在某些情况下,bean 可能运行在 GUI 不可用的服务器上。
 

类摘要
BeanDescriptor BeanDescriptor 提供有关 "bean" 的全局信息,其中包括其 Java 类、其 displayName 等等。
Beans 此类提供一些通用的 bean 控制方法。
DefaultPersistenceDelegate DefaultPersistenceDelegatePersistenceDelegate 抽象类的具体实现,是没有关于其可用信息的类在默认情况下使用的委托。
Encoder Encoder 是这样的类,它可用于创建根据其公共 API 对 JavaBeans 集合状态进行编码的文件或流。
EventHandler EventHandler 类为动态生成事件侦听器提供支持,这些侦听器的方法执行一条涉及传入事件对象和目标对象的简单语句。
EventSetDescriptor 描述给定 Java bean 激发的一组事件的 EventSetDescriptor。
Expression Expression 对象表示基本表达式,其中将单个方法应用于某一目标和一组参数,以返回结果,与在 "a.getFoo()" 中一样。
FeatureDescriptor FeatureDescriptor 类是 PropertyDescriptor、EventSetDescriptor 和 MethodDescriptor 等的公共基类。
IndexedPropertyChangeEvent 无论何时遵守 JavaBeans 规范的组件("bean")更改绑定 (bound) 索引 (indexed) 属性,都会提交一个 "IndexedPropertyChange" 事件。
IndexedPropertyDescriptor IndexedPropertyDescriptor 描述了类似数组行为的属性,且有一种访问数组特定元素的索引读和/或索引写方法。
Introspector Introspector 类为通过工具学习有关受目标 Java Bean 支持的属性、事件和方法的知识提供了一个标准方法。
MethodDescriptor MethodDescriptor 描述了一种特殊方法,即 Java Bean 支持从其他组件对其进行外部访问。
ParameterDescriptor ParameterDescriptor 类允许 bean 实现者提供除 java.lang.reflect.Method 类提供的低级别信息之外的关于其每个参数的额外信息。
PersistenceDelegate PersistenceDelegate 类负责根据类的公共 API 中的方法表示给定类的实例状态。
PropertyChangeEvent 无论 bean 何时更改 "bound" 或 "constrained" 属性,都会提交一个 "PropertyChange" 事件。
PropertyChangeListenerProxy 扩展 EventListenerProxy 的类,特别适用于添加指定的 PropertyChangeListener
PropertyChangeSupport 这是一个实用工具类,支持绑定 (bound) 属性的 bean 可以使用该类。
PropertyDescriptor PropertyDescriptor 描述 Java Bean 通过一对存储器方法导出的一个属性。
PropertyEditorManager PropertyEditorManager 可用于查找任何给定类型名称的属性编辑器。
PropertyEditorSupport 这是一个帮助构建属性编辑器的支持类。
SimpleBeanInfo 这是一个使得用户提供 BeanInfo 类更容易的支持类。
Statement Statement 对象表示基本语句,其中将单个方法应用于某一目标和一组参数,以返回结果,比如 "a.setFoo(b)"
VetoableChangeListenerProxy 扩展 EventListenerProxy 的类,特别适用于将 VetoableChangeListener 与 "constrained" 属性相关联。
VetoableChangeSupport 这是一个实用工具类,支持约束 (constrained) 属性的 bean 可以使用此类。
XMLDecoder XMLDecoder 类用于读取使用 XMLEncoder 创建的 XML 文档,用途类似于 ObjectInputStream
XMLEncoder XMLEncoder 类是 ObjectOutputStream 的互补替换,可用于生成 JavaBean 的文本表示形式,所使用方式与用 ObjectOutputStream 创建 Serializable 对象的二进制表示形式的方式相同。
 

异常摘要
IntrospectionException 在 Introspection 期间发生异常时抛出异常。
PropertyVetoException 当某一属性的提议更改表示一个不可接受的值时,将抛出 PropertyVetoException。
 

注释类型摘要
ConstructorProperties 关于构造方法的注释,用来说明该构造方法的参数如何与被构造对象的获取方法相对应。
 

软件包 java.beans 的描述

包含与开发 beans 有关的类,即基于 JavaBeansTM 架构的组件。少数类可由 bean 使用,也能以应用程序的形式运行。例如,event 类由激发属性和禁止更改事件的 bean 使用(参见 PropertyChangeEvent)。不过,此包中的大多数类由 bean 编辑器(即自定义 bean 并将其汇集起来以创建应用程序的开发环境)使用。特别要指出的是,这些类帮助 bean 编辑器创建用户可以用来自定义 bean 的用户界面。例如,bean 可能包含 bean 编辑器也许不知道如何处理的特殊类型的属性。通过使用 PropertyEditor 接口,bean 开发人员可以为此特殊类型提供一个编辑器。

为了最大限度地减少 bean 使用的资源,只在要编辑 bean 时加载 bean 编辑器使用的类。当 bean 以应用程序的形式运行时,不需要这些类,所以不用加载它们。此信息在称为 bean-info 的类中(参见 BeanInfo)。

除非显式声明,否则 null 值或空 String 对于此包中的方法是无效参数。如果使用这些参数,可能将引发异常。

长期持久性

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

注: 持久性方案无法自动实例化自定义内部类,比如用于事件处理程序。通过使用 EventHandler 类而不是自定义事件处理程序的内部类,可以避免此问题。

可分别使用 XMLDecoderXMLEncoder 类读取和写出 XML 格式的 bean。持久性方案的一个显著特性是,读入 bean 不需要该 bean 的特定信息。

另一方面,写出 bean 有时需要 bean 类型的特定信息。如果可以只使用无参数构造方法以及公共获取方法和设置方法表达 bean 的状态,则无需 bean 的特定信息。否则,bean 需要一个自定义持久委托,即负责写出特殊类型的 bean 的对象。从 java.awt.Component 继承的 JDK 中提供的所有类及其所有属性都将自动拥有持久委托。

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

PersistenceDelegate
这是一个抽象类,所有持久委托都是从它遗传的。子类应该使用它所知的 bean 类型信息来提供创建 bean 和恢复其状态所需的任何 StatementExpression
Statement
表示某一对象上的单个方法的调用。包括该方法的参数集合。
Expression
用于返回一个值的那些方法的 Statement 的子类。

一旦创建了一个持久委托,就可以使用 XMLEncodersetPersistenceDelegate 方法注册它。

相关文档

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


JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策