java.beans

bean(即Java bean)就是Java的類,或者說,就是Java語言的組件,充分體現了Java語言平台獨立和面向對象編程的優勢。JavaBeans是一代網路程式設計師的資源。它是Java語言的組件:bean的接口和通訊部分的標準,實現了bean的復用。

介紹

包含與開發 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 類而不是自定義事件處理程式的內部類,可以避免此問題。

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

可分別使用 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 的持久委託。否則,用戶需要實現自己的持久委託,對此,可能需要以下類:

PersistenceDelegate

這是一個抽象類,所有持久委託都是從它遺傳的。子類應該使用它所知的 bean 類型信息來提供創建 bean 和恢復其狀態所需的任何 Statement 和 Expression。

Statement

表示某一對象上的單個方法的調用。包括該方法的參數集合。

Expression

用於返回一個值的那些方法的 Statement 的子類。

一旦創建了一個持久委託,就可以使用 XMLEncoder 的 setPersistenceDelegate 方法註冊它。

相關文檔

有關概述、架構和教程文檔的信息,請參閱:

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

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

接口摘要

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 DefaultPersistenceDelegate 是 PersistenceDelegate 抽象類的具體實現,是沒有關於其可用信息的類在默認情況下使用的委託。
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 對象的二進制表示形式的方式相同。

相關詞條

相關搜尋

熱門詞條

聯絡我們