|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.lang.reflect.AccessibleObject java.lang.reflect.Method
public final class Method
Method
提供關於類別或介面上單獨某個方法(以及如何存取該方法)的資訊。所反映的方法可能是類別方法或實例方法(包括抽象方法)。
Method
允許在比對要調用的實參與底層方法的形參時進行擴展轉換;但如果要進行收縮轉換,則會拋出 IllegalArgumentException
。
Member
,
Class
,
Class.getMethods()
,
Class.getMethod(String, Class[])
,
Class.getDeclaredMethods()
,
Class.getDeclaredMethod(String, Class[])
欄位摘要 |
---|
從介面 java.lang.reflect.Member 繼承的欄位 |
---|
DECLARED, PUBLIC |
方法摘要 | ||
---|---|---|
boolean |
equals(Object obj)
將此 Method 與指定物件進行比較。 |
|
|
getAnnotation(Class<T> annotationClass)
如果存在該元素的指定型別的註釋,則返回這些註釋,否則返回 null。 |
|
Annotation[] |
getDeclaredAnnotations()
返回直接存在於此元素上的所有註釋。 |
|
Class<?> |
getDeclaringClass()
返回表示宣告由此 Method 物件表示的方法的類別或介面的 Class 物件。 |
|
Object |
getDefaultValue()
返回由此 Method 實例表示的註釋成員的預設值。 |
|
Class<?>[] |
getExceptionTypes()
返回 Class 物件的陣列,這些物件描述了宣告將此 Method 物件表示的底層方法拋出的異常型別。 |
|
Type[] |
getGenericExceptionTypes()
返回 Type 物件陣列,這些物件描述了宣告由此 Method 物件拋出的異常。 |
|
Type[] |
getGenericParameterTypes()
按照宣告順序返回 Type 物件的陣列,這些物件描述了此 Method 物件所表示的方法的形參型別的。 |
|
Type |
getGenericReturnType()
返回表示由此 Method 物件所表示方法的正式返回型別的 Type 物件。 |
|
int |
getModifiers()
以整數形式返回此 Method 物件所表示方法的 Java 語言修飾符。 |
|
String |
getName()
以 String 形式返回此 Method 物件表示的方法名稱。 |
|
Annotation[][] |
getParameterAnnotations()
返回表示按照宣告順序對此 Method 物件所表示方法的形參進行註釋的那個陣列的陣列。 |
|
Class<?>[] |
getParameterTypes()
按照宣告順序返回 Class 物件的陣列,這些物件描述了此 Method 物件所表示的方法的形參型別。 |
|
Class<?> |
getReturnType()
返回一個 Class 物件,該物件描述了此 Method 物件所表示的方法的正式返回型別。 |
|
TypeVariable<Method>[] |
getTypeParameters()
返回 TypeVariable 物件的陣列,這些物件描述了由 GenericDeclaration 物件表示的一般宣告按宣告順序來宣告的型別變數。 |
|
int |
hashCode()
返回此 Method 的雜湊碼。 |
|
Object |
invoke(Object obj,
Object... args)
對帶有指定參數的指定物件調用由此 Method 物件表示的底層方法。 |
|
boolean |
isBridge()
如果此方法是 bridge 方法,則返回 true;否則,返回 false。 |
|
boolean |
isSynthetic()
如果此方法為復合方法,則返回 true;否則,返回 false。 |
|
boolean |
isVarArgs()
如果將此方法宣告為帶有可變數量的參數,則返回 true;否則,返回 false。 |
|
String |
toGenericString()
返回描述此 Method 的字元串,包括型別參數。 |
|
String |
toString()
返回描述此 Method 的字元串。 |
從類別 java.lang.reflect.AccessibleObject 繼承的方法 |
---|
getAnnotations, isAccessible, isAnnotationPresent, setAccessible, setAccessible |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
方法詳細資訊 |
---|
public Class<?> getDeclaringClass()
Method
物件表示的方法的類別或介面的 Class
物件。
Member
中的 getDeclaringClass
public String getName()
String
形式返回此 Method
物件表示的方法名稱。
Member
中的 getName
public int getModifiers()
Method
物件所表示方法的 Java 語言修飾符。應該使用 Modifier
類別對修飾符進行解碼。
Member
中的 getModifiers
Modifier
public TypeVariable<Method>[] getTypeParameters()
GenericDeclaration
中的 getTypeParameters
GenericSignatureFormatError
- 如果此一般宣告的一般簽章不符合 Java Virtual Machine Specification, 3rd edition 中指定的格式public Class<?> getReturnType()
Class
物件,該物件描述了此 Method
物件所表示的方法的正式返回型別。
public Type getGenericReturnType()
如果返回型別是參數化型別,則返回的 Type 物件必須實際反映源程式碼中所用參數的實際型別。
如果返回型別是型別變數或參數化型別,則創建它。否則將解析它。
GenericSignatureFormatError
- 如果一般方法簽章不符合 Java Virtual Machine Specification, 3rd edition 中指定的格式
TypeNotPresentException
- 如果底層方法的返回型別參考不存在的型別宣告
MalformedParameterizedTypeException
- 如果底層方法的返回型別參考無論如何都無法實例化的參數化型別public Class<?>[] getParameterTypes()
Class
物件的陣列,這些物件描述了此 Method
物件所表示的方法的形參型別。如果底層方法不帶參數,則返回長度為 0 的陣列。
public Type[] getGenericParameterTypes()
如果形參型別是參數化型別,則為其返回的 Type 物件必須實際反映源程式碼中使用的實際型別參數。
如果形參型別是型別變數或參數化型別,則創建它。否則將解析它。
GenericSignatureFormatError
- 如果一般方法簽章不符合 Java Virtual Machine Specification, 3rd edition 中指定的格式
TypeNotPresentException
- 如果底層方法的所有參數型別都參考不存在的型別宣告
MalformedParameterizedTypeException
- 如果所有底層方法的參數型別參考無論如何都無法實例化的參數化型別public Class<?>[] getExceptionTypes()
Class
物件的陣列,這些物件描述了宣告將此 Method
物件表示的底層方法拋出的異常型別。如果此方法沒有在其 throws
子句中宣告異常,則返回長度為 0 的陣列。
public Type[] getGenericExceptionTypes()
如果異常型別是參數化的型別,那麼為它返回的 Type 物件必須實際反映源程式碼中所用參數的實際型別。
如果異常型別是型別變數或參數化型別,則創建它。否則將解析它。
GenericSignatureFormatError
- 如果一般方法簽章不符合 Java Virtual Machine Specification, 3rd edition 中指定的格式
TypeNotPresentException
- 如果底層方法的 throws 子句參考不存在的型別宣告
MalformedParameterizedTypeException
- 如果底層方法的 throws 子句參考無論如何都無法實例化的參數化型別public boolean equals(Object obj)
Method
與指定物件進行比較。如果物件相同,則返回 true。如果它們由相同的類別宣告,具有相同的名稱、形參型別和返回型別,則兩個 Method
相同。
Object
中的 equals
obj
- 要與之比較的參考物件。
true
;否則返回 false
。Object.hashCode()
,
Hashtable
public int hashCode()
Method
的雜湊碼。雜湊碼按底層方法的宣告類別名稱和方法名稱的雜湊碼的異或計算。
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
Method
的字元串。該字元串被格式化為方法存取修飾符(如果有),後面依次跟著方法返回型別、空格、宣告方法的類別、句點、方法名、括號以及由逗號分隔的方法的形參型別列表。如果方法拋出檢查異常,則參數列表後跟著空格、單詞 throws 以及由逗號分隔的拋出異常型別的列表。例如:
public boolean java.lang.Object.equals(java.lang.Object)
存取修飾符按照由 "The Java Language Specification" 指定的規範化順序放置。首先是 public,protected 或 private,接著是按以下順序的其他修飾符:abstract、static、final、synchronized、native。
Object
中的 toString
public String toGenericString()
Method
的字元串,包括型別參數。該字元串被格式化為方法存取修飾符(如果有),依次後跟用尖括號括起來的由逗號分隔的方法型別參數列表(如果有)、方法的一般返回型別、空格、宣告方法的類別、句點、方法名、括號以及由逗號分隔的方法的一般形參型別列表。空格用於將存取修飾符和型別參數或返回型別互相分隔開。如果不存在型別參數,則型別參數列表會被省略;如果型別參數列表存在,則用空格將列表與類別名分隔開。如果宣告方法以拋出異常,則參數列表後跟空格、單詞 throws 以及由逗號分隔開的拋出一般異常型別的列表。如果不存在型別參數,則型別參數列表會被省略。
存取修飾符按照 "The Java Language Specification" 指定的規範化順序放置。首先是 public,protected 或 private,接著是按以下順序的其他修飾符:abstract、static、final、synchronized native。
Method
方法的字元串,包括型別參數public Object invoke(Object obj, Object... args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
Method
物件表示的底層方法。個別參數被自動解包,以便與基本形參相比對,基本參數和參考參數都隨需服從方法調用轉換。
如果底層方法是靜態的,那麼可以忽略指定的 obj
參數。該參數可以為 null。
如果底層方法所需的形參數為 0,則所提供的 args
陣列長度可以為 0 或 null。
如果底層方法是實例方法,則使用動態方法尋找來調用它,這一點記錄在 Java Language Specification, Second Edition 的第 15.12.4.4 節中;在發生基於目標物件的運行時型別的覆寫時更應該這樣做。
如果底層方法是靜態的,並且尚未初始化宣告此方法的類別,則會將其初始化。
如果方法正常完成,則將該方法返回的值返回給調用者;如果該值為基本型別,則首先適當地將其包裹在物件中。但是,如果該值的型別為一組基本型別,則陣列元素不 被包裹在物件中;換句話說,將返回基本型別的陣列。如果底層方法返回型別為 void,則該調用返回 null。
obj
- 從中調用底層方法的物件args
- 用於方法調用的參數
args
在 obj
上指派該物件所表示方法的結果
IllegalAccessException
- 如果此 Method
物件強制執行 Java 語言存取控制,並且底層方法是不可存取的。
IllegalArgumentException
- 如果該方法是實例方法,且指定物件參數不是宣告底層方法的類別或介面(或其中的子類別或實作程序)的實例;如果實參和形參的數量不相同;如果基本參數的解包轉換失敗;如果在解包後,無法通過方法調用轉換將參數值轉換為相應的形參型別。
InvocationTargetException
- 如果底層方法拋出異常。
NullPointerException
- 如果指定物件為 null,且該方法是一個實例方法。
ExceptionInInitializerError
- 如果由此方法引起的初始化失敗。public boolean isBridge()
public boolean isVarArgs()
public boolean isSynthetic()
Member
中的 isSynthetic
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
AnnotatedElement
複製的描述
AnnotatedElement
中的 getAnnotation
AccessibleObject
中的 getAnnotation
annotationClass
- 對應於註釋型別的 Class 物件
NullPointerException
- 如果給定的註釋類別為 nullpublic Annotation[] getDeclaredAnnotations()
AnnotatedElement
複製的描述
AnnotatedElement
中的 getDeclaredAnnotations
AccessibleObject
中的 getDeclaredAnnotations
public Object getDefaultValue()
TypeNotPresentException
- 如果註釋型別是 Class
且找不到預設類別值的定義。public Annotation[][] getParameterAnnotations()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。