JavaTM 2 Platform
Standard Ed. 6

java.lang.reflect
類別 Field

java.lang.Object
  繼承者 java.lang.reflect.AccessibleObject
      繼承者 java.lang.reflect.Field
所有已實作的介面:
AnnotatedElement, Member

public final class Field
extends AccessibleObject
implements Member

Field 提供有關類別或介面的單個欄位的資訊,以及對它的動態存取權限。反射的欄位可能是一個類別(靜態)欄位或實例欄位。

Array 允許在執行 get 或 set 存取操作期間進行擴展轉換,但如果將發生收縮轉換,則拋出一個 IllegalArgumentException

另請參見:
Member, Class, Class.getFields(), Class.getField(String), Class.getDeclaredFields(), Class.getDeclaredField(String)

欄位摘要
 
從介面 java.lang.reflect.Member 繼承的欄位
DECLARED, PUBLIC
 
方法摘要
 boolean equals(Object obj)
          將此 Field 與指定物件比較。
 Object get(Object obj)
          返回指定物件上此 Field 表示的欄位的值。
<T extends Annotation>
T
getAnnotation(Class<T> annotationClass)
          如果存在該元素的指定型別的註釋,則返回這些註釋,否則返回 null。
 boolean getBoolean(Object obj)
          獲取一個靜態或實例 boolean 欄位的值。
 byte getByte(Object obj)
          獲取一個靜態或實例 byte 欄位的值。
 char getChar(Object obj)
          獲取 char 型別或另一個通過擴展轉換可以轉換為 char 型別的基本型別的靜態或實例欄位的值。
 Annotation[] getDeclaredAnnotations()
          返回直接存在於此元素上的所有註釋。
 Class<?> getDeclaringClass()
          返回表示類別或介面的 Class 物件,該類別或介面宣告由此 Field 物件表示的欄位。
 double getDouble(Object obj)
          獲取 double 型別或另一個通過擴展轉換可以轉換為 double 型別的基本型別的靜態或實例欄位的值。
 float getFloat(Object obj)
          獲取 float 型別或另一個通過擴展轉換可以轉換為 float 型別的基本型別的靜態或實例欄位的值。
 Type getGenericType()
          返回一個 Type 物件,它表示此 Field 物件所表示欄位的宣告型別。
 int getInt(Object obj)
          獲取 int 型別或另一個通過擴展轉換可以轉換為 int 型別的基本型別的靜態或實例欄位的值。
 long getLong(Object obj)
          獲取 long 型別或另一個通過擴展轉換可以轉換為 long 型別的基本型別的靜態或實例欄位的值。
 int getModifiers()
          以整數形式返回由此 Field 物件表示的欄位的 Java 語言修飾符。
 String getName()
          返回此 Field 物件表示的欄位的名稱。
 short getShort(Object obj)
          獲取 short 型別或另一個通過擴展轉換可以轉換為 short 型別的基本型別的靜態或實例欄位的值。
 Class<?> getType()
          返回一個 Class 物件,它標識了此 Field 物件所表示欄位的宣告型別。
 int hashCode()
          返回該 Field 的雜湊碼。
 boolean isEnumConstant()
          如果此欄位表示列舉型別的元素,則返回 true;否則返回 false
 boolean isSynthetic()
          如果此欄位是復合欄位,則返回 true;否則返回 false
 void set(Object obj, Object value)
          將指定物件變數上此 Field 物件表示的欄位設置為指定的新值。
 void setBoolean(Object obj, boolean z)
          將欄位的值設置為指定物件上的一個 boolean 值。
 void setByte(Object obj, byte b)
          將欄位的值設置為指定物件上的一個 byte 值。
 void setChar(Object obj, char c)
          將欄位的值設置為指定物件上的一個 char 值。
 void setDouble(Object obj, double d)
          將欄位的值設置為指定物件上的一個 double 值。
 void setFloat(Object obj, float f)
          將欄位的值設置為指定物件上的一個 float 值。
 void setInt(Object obj, int i)
          將欄位的值設置為指定物件上的一個 int 值。
 void setLong(Object obj, long l)
          將欄位的值設置為指定物件上的一個 long 值。
 void setShort(Object obj, short s)
          將欄位的值設置為指定物件上的一個 short 值。
 String toGenericString()
          返回一個描述此 Field(包括其一般型別)的字元串。
 String toString()
          返回一個描述此 Field 的字元串。
 
從類別 java.lang.reflect.AccessibleObject 繼承的方法
getAnnotations, isAccessible, isAnnotationPresent, setAccessible, setAccessible
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

方法詳細資訊

getDeclaringClass

public Class<?> getDeclaringClass()
返回表示類別或介面的 Class 物件,該類別或介面宣告由此 Field 物件表示的欄位。

指定者:
介面 Member 中的 getDeclaringClass
返回:
表示宣告底層成員的類別的物件

getName

public String getName()
返回此 Field 物件表示的欄位的名稱。

指定者:
介面 Member 中的 getName
返回:
底層成員的簡單名稱

getModifiers

public int getModifiers()
以整數形式返回由此 Field 物件表示的欄位的 Java 語言修飾符。應該使用 Modifier 類別對這些修飾符進行解碼。

指定者:
介面 Member 中的 getModifiers
返回:
底層成員的 Java 語言修飾符
另請參見:
Modifier

isEnumConstant

public boolean isEnumConstant()
如果此欄位表示列舉型別的元素,則返回 true;否則返回 false

返回:
當且僅當此欄位表示一個列舉型別的元素時,才返回 true
從以下版本開始:
1.5

isSynthetic

public boolean isSynthetic()
如果此欄位是復合欄位,則返回 true;否則返回 false

指定者:
介面 Member 中的 isSynthetic
返回:
當且僅當此欄位是一個按 Java Language Specification 定義的復合欄位時,才返回 true。
從以下版本開始:
1.5

getType

public Class<?> getType()
返回一個 Class 物件,它標識了此 Field 物件所表示欄位的宣告型別。

返回:
標識此物件所表示欄位的宣告型別的 Class 物件

getGenericType

public Type getGenericType()
返回一個 Type 物件,它表示此 Field 物件所表示欄位的宣告型別。

如果 Type 是一個參數化型別,則返回的 Type 物件必須準確地反映源程式碼中使用的實際型別參數。

如果底層欄位的型別是一個型別變數或者是一個參數化型別,則創建它。否則將解析它。

返回:
返回表示此 Field 物件所表示欄位的宣告型別的 Type 物件
拋出:
GenericSignatureFormatError - 如果一般欄位簽章不符合 Java Virtual Machine Specification, 3rd edition 中指定的格式
TypeNotPresentException - 如果底層欄位的一般型別簽章參考了不存在的型別宣告
MalformedParameterizedTypeException - 如果底層欄位的一般簽章參考了一個因某種原因而無法實例化的參數化型別
從以下版本開始:
1.5

equals

public boolean equals(Object obj)
將此 Field 與指定物件比較。如果物件是相同的,則返回 true。如果由相同的類別宣告並且具有相同的名稱和型別,那麼這兩個 Field 物件是相同的。

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

hashCode

public int hashCode()
返回該 Field 的雜湊碼。這作為底層欄位的宣告類別名及其名稱的雜湊碼的異或進行計算。

覆寫:
類別 Object 中的 hashCode
返回:
此物件的一個雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
返回一個描述此 Field 的字元串。格式是:該欄位(如果存在的話)的存取修飾符,後面跟著欄位型別和一個空格,再後面是宣告該欄位的類別的完全限定名,後面跟著一個句點,最後是欄位的名稱。例如:
    public static final int java.lang.Thread.MIN_PRIORITY
    private int java.io.FileDescriptor.fd
 

修飾符是按照 "The Java Language Specification" 中指定的規範化順序放置的。publicprotectedprivate 的修飾符放在最前面,然後按以下順序放置其他修飾符:staticfinaltransientvolatile

覆寫:
類別 Object 中的 toString
返回:
該物件的字元串表示形式。

toGenericString

public String toGenericString()
返回一個描述此 Field(包括其一般型別)的字元串。格式是:該欄位(如果存在的話)的存取修飾符,後面跟著一般欄位型別和一個空格,再後面是宣告該欄位的類別的完全限定名,後面跟著一個句點,最後是欄位的名稱。

修飾符是按照 "The Java Language Specification" 中指定的規範化順序放置的。publicprotectedprivate 的修飾符放在最前面,然後按以下順序放置其他修飾符:staticfinaltransientvolatile

返回:
描述此 Field(包括其一般型別)的字元串
從以下版本開始:
1.5

get

public Object get(Object obj)
           throws IllegalArgumentException,
                  IllegalAccessException
返回指定物件上此 Field 表示的欄位的值。如果該值是一個基本型別值,則自動將其包裹在一個物件中。

底層欄位的值是按以下方式獲得的:

如果底層欄位是一個靜態欄位,則忽略 obj 變數;它可能為 null。

否則,底層欄位是一個實例欄位。如果指定的 obj 變數為 null,則該方法將拋出一個 NullPointerException。如果指定物件不是宣告底層欄位的類別或介面的實例,則該方法將拋出一個 IllegalArgumentException

如果此 Field 物件強制實施 Java 語言存取控制,並且底層欄位是不可存取的,則該方法將拋出一個 IllegalAccessException。如果底層欄位是靜態的,並且宣告該欄位的類別尚未初始化,則初始化這個類別。

否則,從底層實例欄位或靜態欄位中獲取該值。如果該欄位是一個基本型別欄位,則在返回前將該值包裹在一個物件中,否則照原樣返回。

如果欄位隱藏在 obj 的型別中,則根據前面的規則獲得欄位的值。

參數:
obj - 從中提取所表示欄位的值的物件
返回:
物件 obj 中的所表示欄位的值;在返回之前,基值包裹在一個適當的物件中
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。

getBoolean

public boolean getBoolean(Object obj)
                   throws IllegalArgumentException,
                          IllegalAccessException
獲取一個靜態或實例 boolean 欄位的值。

參數:
obj - 從中提取 boolean 值的物件
返回:
boolean 欄位的值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者無法通過擴展轉換將欄位值轉換為 boolean 型別。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
get(java.lang.Object)

getByte

public byte getByte(Object obj)
             throws IllegalArgumentException,
                    IllegalAccessException
獲取一個靜態或實例 byte 欄位的值。

參數:
obj - 從中提取 byte 值的物件
返回:
byte 欄位的值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者無法通過擴展轉換將欄位值轉換為 byte 型別。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
get(java.lang.Object)

getChar

public char getChar(Object obj)
             throws IllegalArgumentException,
                    IllegalAccessException
獲取 char 型別或另一個通過擴展轉換可以轉換為 char 型別的基本型別的靜態或實例欄位的值。

參數:
obj - 從中提取 char 值的物件
返回:
轉換為 char 型別的欄位的值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者無法通過擴展轉換將欄位值轉換為 char 型別。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
get(java.lang.Object)

getShort

public short getShort(Object obj)
               throws IllegalArgumentException,
                      IllegalAccessException
獲取 short 型別或另一個通過擴展轉換可以轉換為 short 型別的基本型別的靜態或實例欄位的值。

參數:
obj - 從中提取 short 值的物件
返回:
轉換為 short 型別的欄位的值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者無法通過擴展轉換將欄位值轉換為 short 型別。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
get(java.lang.Object)

getInt

public int getInt(Object obj)
           throws IllegalArgumentException,
                  IllegalAccessException
獲取 int 型別或另一個通過擴展轉換可以轉換為 int 型別的基本型別的靜態或實例欄位的值。

參數:
obj - 從中提取 int 值的物件
返回:
轉換為 int 型別的欄位的值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者無法通過擴展轉換將欄位值轉換為 int 型別。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
get(java.lang.Object)

getLong

public long getLong(Object obj)
             throws IllegalArgumentException,
                    IllegalAccessException
獲取 long 型別或另一個通過擴展轉換可以轉換為 long 型別的基本型別的靜態或實例欄位的值。

參數:
obj - 從中提取 long 值的物件
返回:
轉換為 long 型別的欄位的值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者無法通過擴展轉換將欄位值轉換為 long 型別。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
get(java.lang.Object)

getFloat

public float getFloat(Object obj)
               throws IllegalArgumentException,
                      IllegalAccessException
獲取 float 型別或另一個通過擴展轉換可以轉換為 float 型別的基本型別的靜態或實例欄位的值。

參數:
obj - 從中提取 float 值的物件
返回:
轉換為 float 型別的欄位的值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者無法通過擴展轉換將欄位值轉換為 float 型別。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
get(java.lang.Object)

getDouble

public double getDouble(Object obj)
                 throws IllegalArgumentException,
                        IllegalAccessException
獲取 double 型別或另一個通過擴展轉換可以轉換為 double 型別的基本型別的靜態或實例欄位的值。

參數:
obj - 從中提取 double 值的物件
返回:
轉換為 double 型別的欄位的值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者無法通過擴展轉換將欄位值轉換為 double 型別。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
get(java.lang.Object)

set

public void set(Object obj,
                Object value)
         throws IllegalArgumentException,
                IllegalAccessException
將指定物件變數上此 Field 物件表示的欄位設置為指定的新值。如果底層欄位的型別為基本型別,則對新值進行自動解套件。

進行此操作的方式如下:

如果底層欄位是靜態欄位,則忽略 obj 變數;它可能為 null。

否則底層欄位是一個實例欄位。如果指定物件變數為 null,則該方法將拋出一個 NullPointerException。如果指定物件變數不是宣告底層欄位的類別或介面的實例,則該方法將拋出一個 IllegalArgumentException

如果此 Field 物件實施 Java 語言存取控制,並且底層欄位是不可存取的,則該方法將拋出一個 IllegalAccessException

如果底層欄位為 final 欄位,則該方法將拋出一個 IllegalAccessException,除非 setAccessible(true) 已經繼承該欄位並且該欄位是一個非靜態欄位。在通過程序的其他部分可以存取類別的實例之前,只有使用空白 final 欄位反序列化或重構類別的實例期間,以這種方式設置 final 欄位才有意義。在其他任何上下文中使用該方法都可能會有不可預知的結果,包括程序的其他部分繼續使用該欄位的原始值的情況。

如果底層欄位的型別為某一基本型別,則可以嘗試使用解包轉換將新值轉換為基本型別的值。如果該嘗試失敗,則此方法將拋出一個 IllegalArgumentException

如果在進行可能的解包之後,無法通過某一標識或擴展轉換將新值轉換為底層欄位的型別,則此方法將拋出一個 IllegalArgumentException

如果底層欄位是靜態的,並且宣告該欄位的類別尚未初始化,則初始化這個類別。

欄位被設置為可能已解包並擴大的新值。

如果欄位隱藏在 obj 的型別中,則根據前面的規則設置欄位的值。

參數:
obj - 應該修改其欄位的物件
value - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。

setBoolean

public void setBoolean(Object obj,
                       boolean z)
                throws IllegalArgumentException,
                       IllegalAccessException
將欄位的值設置為指定物件上的一個 boolean 值。該方法等同於 set(obj, zObj),其中 zObj 是一個 Boolean 物件,並且 zObj.booleanValue() == z

參數:
obj - 應該修改其欄位的物件
z - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
set(java.lang.Object, java.lang.Object)

setByte

public void setByte(Object obj,
                    byte b)
             throws IllegalArgumentException,
                    IllegalAccessException
將欄位的值設置為指定物件上的一個 byte 值。該方法等同於 set(obj, bObj),其中 bObj 是一個 Byte 物件,並且 bObj.byteValue() == b

參數:
obj - 應該修改其欄位的物件
b - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
set(java.lang.Object, java.lang.Object)

setChar

public void setChar(Object obj,
                    char c)
             throws IllegalArgumentException,
                    IllegalAccessException
將欄位的值設置為指定物件上的一個 char 值。該方法等同於 set(obj, cObj),其中 cObj 是一個 Character 物件,並且 cObj.charValue() == c

參數:
obj - 應該修改其欄位的物件
c - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
set(java.lang.Object, java.lang.Object)

setShort

public void setShort(Object obj,
                     short s)
              throws IllegalArgumentException,
                     IllegalAccessException
將欄位的值設置為指定物件上的一個 short 值。該方法等同於 set(obj, sObj),其中 sObj 是一個 Short 物件,並且 sObj.shortValue() == s

參數:
obj - 應該修改其欄位的物件
s - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
set(java.lang.Object, java.lang.Object)

setInt

public void setInt(Object obj,
                   int i)
            throws IllegalArgumentException,
                   IllegalAccessException
將欄位的值設置為指定物件上的一個 int 值。該方法等同於 set(obj, iObj),其中 iObj 是一個 Integer 物件,並且 iObj.intValue() == i

參數:
obj - 應該修改其欄位的物件
i - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
set(java.lang.Object, java.lang.Object)

setLong

public void setLong(Object obj,
                    long l)
             throws IllegalArgumentException,
                    IllegalAccessException
將欄位的值設置為指定物件上的一個 long 值。該方法等同於 set(obj, lObj),其中 lObj 是一個 Long 物件,並且 lObj.longValue() == l

參數:
obj - 應該修改其欄位的物件
l - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
set(java.lang.Object, java.lang.Object)

setFloat

public void setFloat(Object obj,
                     float f)
              throws IllegalArgumentException,
                     IllegalAccessException
將欄位的值設置為指定物件上的一個 float 值。該方法等同於 set(obj, fObj),其中 fObj 是一個 Float 物件,並且 fObj.floatValue() == f

參數:
obj - 應該修改其欄位的物件
f - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
set(java.lang.Object, java.lang.Object)

setDouble

public void setDouble(Object obj,
                      double d)
               throws IllegalArgumentException,
                      IllegalAccessException
將欄位的值設置為指定物件上的一個 double 值。該方法等同於 set(obj, dObj),其中 dObj 是一個 Double 物件,並且 dObj.doubleValue() == d

參數:
obj - 應該修改其欄位的物件
d - 正被修改的 obj 的欄位的新值
拋出:
IllegalAccessException - 如果底層欄位是不可存取的。
IllegalArgumentException - 如果指定物件不是宣告底層欄位(或者其子類別或實作者)的類別或介面的實例,或者解包轉換失敗。
NullPointerException - 如果指定物件為 null 並且欄位是一個實例欄位。
ExceptionInInitializerError - 如果此方法引起的初始化失敗。
另請參見:
set(java.lang.Object, java.lang.Object)

getAnnotation

public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
從介面 AnnotatedElement 複製的描述
如果存在該元素的指定型別的註釋,則返回這些註釋,否則返回 null。

指定者:
介面 AnnotatedElement 中的 getAnnotation
覆寫:
類別 AccessibleObject 中的 getAnnotation
參數:
annotationClass - 對應於註釋型別的 Class 物件
返回:
如果該元素的指定註釋型別的註釋存在於此物件上,則返回這些註釋,否則返回 null
拋出:
NullPointerException - 如果給定的註釋類別為 null
從以下版本開始:
1.5

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()
從介面 AnnotatedElement 複製的描述
返回直接存在於此元素上的所有註釋。與此介面中的其他方法不同,該方法將忽略繼承的註釋。(如果沒有註釋直接存在於此元素上,則返回長度為零的一個陣列。)該方法的調用者可以隨意修改返回的陣列;這不會對其他調用者返回的陣列產生任何影響。

指定者:
介面 AnnotatedElement 中的 getDeclaredAnnotations
覆寫:
類別 AccessibleObject 中的 getDeclaredAnnotations
返回:
直接存在於此元素上的所有註釋
從以下版本開始:
1.5

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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