JavaTM 2 Platform
Standard Ed. 6

軟體套件 java.beans

包含與開發 beans 有關的類別,即基於 JavaBeansTM 架構的元件。

請參見:
          描述

介面摘要
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 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only