JavaTM 2 Platform
Standard Ed. 6

java.beans
類別 PropertyDescriptor

java.lang.Object
  繼承者 java.beans.FeatureDescriptor
      繼承者 java.beans.PropertyDescriptor
直接已知子類別:
IndexedPropertyDescriptor

public class PropertyDescriptor
extends FeatureDescriptor

PropertyDescriptor 描述 Java Bean 通過一對存儲器方法導出的一個屬性。


建構子摘要
PropertyDescriptor(String propertyName, Class<?> beanClass)
          通過調用 getFoo 和 setFoo 存取方法,為符合標準 Java 約定的屬性建構一個 PropertyDescriptor。
PropertyDescriptor(String propertyName, Class<?> beanClass, String readMethodName, String writeMethodName)
          此建構子帶有一個簡單屬性的名稱和用於讀寫屬性的方法名稱。
PropertyDescriptor(String propertyName, Method readMethod, Method writeMethod)
          此建構子帶有某一簡單屬性的名稱,以及用來讀取和寫入屬性的 Method 物件。
 
方法摘要
 PropertyEditor createPropertyEditor(Object bean)
          使用當前屬性編輯器類別建構一個屬性編輯器實例。
 boolean equals(Object obj)
          將此 PropertyDescriptor 與指定物件進行比較。
 Class<?> getPropertyEditorClass()
          獲得已為此屬性註冊的任何顯式 PropertyEditor Class。
 Class<?> getPropertyType()
          獲得屬性的 Class 物件。
 Method getReadMethod()
          獲得應該用於讀取屬性值的方法。
 Method getWriteMethod()
          獲得應該用於寫入屬性值的方法。
 int hashCode()
          返回物件的雜湊碼。
 boolean isBound()
          更新 "bound" 屬性將導致更改該屬性時觸發 "PropertyChange" 事件。
 boolean isConstrained()
          試圖更新 "Constrained" 屬性將導致更改該屬性時觸發 "VetoableChange" 事件。
 void setBound(boolean bound)
          更新 "bound" 屬性將導致更改該屬性時觸發 "PropertyChange" 事件。
 void setConstrained(boolean constrained)
          試圖更新 "Constrained" 屬性將導致更改該屬性時觸發 "VetoableChange" 事件。
 void setPropertyEditorClass(Class<?> propertyEditorClass)
          通常 PropertyEditor 是使用 PropertyEditorManager 找到的。
 void setReadMethod(Method readMethod)
          設置應該用於讀取屬性值的方法。
 void setWriteMethod(Method writeMethod)
          設置應該用於寫入屬性值的方法。
 
從類別 java.beans.FeatureDescriptor 繼承的方法
attributeNames, getDisplayName, getName, getShortDescription, getValue, isExpert, isHidden, isPreferred, setDisplayName, setExpert, setHidden, setName, setPreferred, setShortDescription, setValue
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

PropertyDescriptor

public PropertyDescriptor(String propertyName,
                          Class<?> beanClass)
                   throws IntrospectionException
通過調用 getFoo 和 setFoo 存取方法,為符合標準 Java 約定的屬性建構一個 PropertyDescriptor。因此如果參數名為 "fred",則假定 writer 方法為 "setFred",reader 方法為 "getFred"(對於 boolean 屬性則為 "isFred")。注意,屬性名應該以小寫字母開頭,而方法名稱中的首寫字母將是大寫的。

參數:
propertyName - 屬性的程式名稱。
beanClass - 目標 bean 的 Class 物件。例如 sun.beans.OurButton.class。
拋出:
IntrospectionException - 如果在內省期間發生異常。

PropertyDescriptor

public PropertyDescriptor(String propertyName,
                          Class<?> beanClass,
                          String readMethodName,
                          String writeMethodName)
                   throws IntrospectionException
此建構子帶有一個簡單屬性的名稱和用於讀寫屬性的方法名稱。

參數:
propertyName - 屬性的程式名稱。
beanClass - 目標 bean 的 Class 物件。例如 sun.beans.OurButton.class。
readMethodName - 用於讀取屬性值的方法名稱。如果屬性是只寫的,則該參數可能為 null。
writeMethodName - 用於寫入屬性值的方法名稱。如果屬性是只讀的,則該參數可能為 null。
拋出:
IntrospectionException - 如果在內省期間發生異常。

PropertyDescriptor

public PropertyDescriptor(String propertyName,
                          Method readMethod,
                          Method writeMethod)
                   throws IntrospectionException
此建構子帶有某一簡單屬性的名稱,以及用來讀取和寫入屬性的 Method 物件。

參數:
propertyName - 屬性的程式名稱。
readMethod - 用於讀取屬性值的方法。如果屬性是只寫的,則該參數可能為 null。
writeMethod - 用於寫入屬性值的方法。如果屬性是只讀的,則該參數可能為 null。
拋出:
IntrospectionException - 如果在內省期間發生異常。
方法詳細資訊

getPropertyType

public Class<?> getPropertyType()
獲得屬性的 Class 物件。

返回:
屬性的 Java 型別資訊。注意,"Class" 物件可以描述內置 Java 型別,比如 "int"。如果此屬性是一個不支持非索引存取的索引 (indexed) 屬性,則結果可能是 "null"。

而這裡的型別是由 ReadMethod 返回的型別。


getReadMethod

public Method getReadMethod()
獲得應該用於讀取屬性值的方法。

返回:
應該用於讀取屬性值的方法。如果無法讀取該屬性,則可能返回。

setReadMethod

public void setReadMethod(Method readMethod)
                   throws IntrospectionException
設置應該用於讀取屬性值的方法。

參數:
readMethod - 新的讀取方法。
拋出:
IntrospectionException

getWriteMethod

public Method getWriteMethod()
獲得應該用於寫入屬性值的方法。

返回:
應該用於寫入屬性值的方法。如果無法寫入該屬性,則可能返回。

setWriteMethod

public void setWriteMethod(Method writeMethod)
                    throws IntrospectionException
設置應該用於寫入屬性值的方法。

參數:
writeMethod - 新的寫入方法。
拋出:
IntrospectionException

isBound

public boolean isBound()
更新 "bound" 屬性將導致更改該屬性時觸發 "PropertyChange" 事件。

返回:
如果該屬性是綁定 (bound) 屬性,則返回 true。

setBound

public void setBound(boolean bound)
更新 "bound" 屬性將導致更改該屬性時觸發 "PropertyChange" 事件。

參數:
bound - 如果該屬性是綁定屬性,則該屬性為 true。

isConstrained

public boolean isConstrained()
試圖更新 "Constrained" 屬性將導致更改該屬性時觸發 "VetoableChange" 事件。

返回:
如果該屬性是約束 (constrained) 屬性,則返回 true。

setConstrained

public void setConstrained(boolean constrained)
試圖更新 "Constrained" 屬性將導致更改該屬性時觸發 "VetoableChange" 事件。

參數:
constrained - 如果該屬性是約束屬性,則該屬性為 true。

setPropertyEditorClass

public void setPropertyEditorClass(Class<?> propertyEditorClass)
通常 PropertyEditor 是使用 PropertyEditorManager 找到的。不過,如果出於某些原因想將特定 PropertyEditor 與某一給定屬性相關聯,那麼可以使用此方法做到這一點。

參數:
propertyEditorClass - 所需 PropertyEditor 的 Class。

getPropertyEditorClass

public Class<?> getPropertyEditorClass()
獲得已為此屬性註冊的任何顯式 PropertyEditor Class。

返回:
已為此屬性註冊的任何顯式 PropertyEditor Class。通常此方法將返回 "null",指示沒有註冊特殊編輯器,所以 PropertyEditorManager 應該用於尋找合適的 PropertyEditor。

createPropertyEditor

public PropertyEditor createPropertyEditor(Object bean)
使用當前屬性編輯器類別建構一個屬性編輯器實例。

如果屬性編輯器類別擁有一個帶有 Object 參數的公共建構子,則將通過使用 bean 參數作為變數來調用它。否則將調用預設建構子。

參數:
bean - 源物件
返回:
屬性編輯器實例,如果沒有定義或無法創建屬性編輯器,則返回 null
從以下版本開始:
1.5

equals

public boolean equals(Object obj)
將此 PropertyDescriptor 與指定物件進行比較。如果物件是相同的,則返回 true。如果讀取、寫入、屬性型別、屬性編輯器和標記都是等同的,則兩個 PropertyDescriptor 是相同的。

覆寫:
類別 Object 中的 equals
參數:
obj - 要與之比較的參考物件。
返回:
如果此物件與 obj 參數相同,則返回 true;否則返回 false
從以下版本開始:
1.4
另請參見:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回物件的雜湊碼。關於完整的描述,請參閱 Object.hashCode()

覆寫:
類別 Object 中的 hashCode
返回:
此物件的雜湊碼值。
從以下版本開始:
1.5
另請參見:
Object.equals(java.lang.Object), Hashtable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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