您当前的位置:首页 > 互联网教程

java.beans有什么用,怎样用

发布时间:2025-05-21 05:53:54    发布人:远客网络

java.beans有什么用,怎样用

一、java.beans有什么用,怎样用

1、bean(即Java bean)就是Java的类,或者说,就是Java语言的组件,充分体现了Java语言平台独立和面向对象编程的优势。\r\n JavaBeans是一代网络程序员的资源。它是Java语言的组件:bean的接口和通讯部分的标准,实现了bean的复用。

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

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

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

二、java.beans的长期持久性

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

--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------

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

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

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

这是一个抽象类,所有持久委托都是从它遗传的。子类应该使用它所知的 bean类型信息来提供创建 bean和恢复其状态所需的任何 Statement和 Expression。

表示某一对象上的单个方法的调用。包括该方法的参数集合。

用于返回一个值的那些方法的 Statement的子类。

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

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

JavaBeans,《The Java Tutorial》中的一部分。

Long-Term Persistence,The Swing Connection中的一篇文章

三、java.beans的软件包 java.beans 的描述

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

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

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