|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.lang.reflect.AccessibleObject java.lang.reflect.Constructor<T>
T
- 在其中宣告建構子的類別。public final class Constructor<T>
Constructor
提供關於類別的單個建構子的資訊以及對它的存取權限。
Constructor
允許在將實參與帶有底層建構子的形參的 newInstance() 比對時進行擴展轉換,但是如果發生收縮轉換,則拋出 IllegalArgumentException
。
Member
,
Class
,
Class.getConstructors()
,
Class.getConstructor(Class[])
,
Class.getDeclaredConstructors()
欄位摘要 |
---|
從介面 java.lang.reflect.Member 繼承的欄位 |
---|
DECLARED, PUBLIC |
方法摘要 | ||
---|---|---|
boolean |
equals(Object obj)
將此 Constructor 物件與指定的物件進行比較。 |
|
|
getAnnotation(Class<T> annotationClass)
如果存在該元素的指定型別的註釋,則返回這些註釋,否則返回 null。 |
|
Annotation[] |
getDeclaredAnnotations()
返回直接存在於此元素上的所有註釋。 |
|
Class<T> |
getDeclaringClass()
返回 Class 物件,該物件表示宣告由此 Constructor 物件表示的建構子的類別。 |
|
Class<?>[] |
getExceptionTypes()
返回一組表示宣告要拋出的異常型別的 Class 物件,這些異常是由此 Constructor 物件表示的底層建構子拋出的。 |
|
Type[] |
getGenericExceptionTypes()
返回一組 Type 物件,這些物件表示宣告要由此 Constructor 物件拋出的異常。 |
|
Type[] |
getGenericParameterTypes()
按照宣告順序返回一組 Type 物件,這些物件表示此 Constructor 物件所表示的方法的形參型別。 |
|
int |
getModifiers()
以整數形式返回此 Constructor 物件所表示建構子的 Java 語言修飾符。 |
|
String |
getName()
以字元串形式返回此建構子的名稱。 |
|
Annotation[][] |
getParameterAnnotations()
按照宣告順序返回一組陣列,這些陣列表示通過此 Constructor 物件表示的方法的形參上的註釋。 |
|
Class<?>[] |
getParameterTypes()
按照宣告順序返回一組 Class 物件,這些物件表示此 Constructor 物件所表示建構子的形參型別。 |
|
TypeVariable<Constructor<T>>[] |
getTypeParameters()
按照宣告順序返回一組 TypeVariable 物件,這些物件表示通過此 GenericDeclaration 物件所表示的一般宣告來宣告的型別變數。 |
|
int |
hashCode()
返回此 Constructor 的雜湊碼。 |
|
boolean |
isSynthetic()
如果此建構子是一個復合建構子,則返回 true;否則返回 false。 |
|
boolean |
isVarArgs()
如果宣告此建構子可以帶可變數量的參數,則返回 true;否則返回 false。 |
|
T |
newInstance(Object... initargs)
使用此 Constructor 物件表示的建構子來創建該建構子的宣告類別的新實例,並用指定的初始化參數初始化該實例。 |
|
String |
toGenericString()
返回描述此 Constructor 的字元串,其中包括型別參數。 |
|
String |
toString()
返回描述此 Constructor 的字元串。 |
從類別 java.lang.reflect.AccessibleObject 繼承的方法 |
---|
getAnnotations, isAccessible, isAnnotationPresent, setAccessible, setAccessible |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
方法詳細資訊 |
---|
public Class<T> getDeclaringClass()
Class
物件,該物件表示宣告由此 Constructor
物件表示的建構子的類別。
Member
中的 getDeclaringClass
public String getName()
Member
中的 getName
public int getModifiers()
Constructor
物件所表示建構子的 Java 語言修飾符。應該使用 Modifier
類別對這些修飾符進行解碼。
Member
中的 getModifiers
Modifier
public TypeVariable<Constructor<T>>[] getTypeParameters()
GenericDeclaration
中的 getTypeParameters
GenericSignatureFormatError
- 如果此一般宣告的一般簽章不符合 Java Virtual Machine Specification, 3rd edition 指定的格式public Class<?>[] getParameterTypes()
Class
物件,這些物件表示此 Constructor
物件所表示建構子的形參型別。如果底層建構子不帶任何參數,則返回一個長度為 0 的陣列。
public Type[] getGenericParameterTypes()
如果形參型別是一個參數化型別,那麼為它返回的 Type 物件必須準確地反映源程式碼中使用的實際型別參數。
如果形參型別是一個型別變數或者是一個參數化型別,則創建它。否則將解析它。
GenericSignatureFormatError
- 如果這個一般方法的簽章不符合 Java Virtual Machine Specification, 3rd edition 指定的格式
TypeNotPresentException
- 如果任何底層方法的參數型別參考了不存在的型別宣告
MalformedParameterizedTypeException
- 如果任何底層方法的參數型別參考了因某種原因而無法實例化的參數化型別public Class<?>[] getExceptionTypes()
Class
物件,這些異常是由此 Constructor
物件表示的底層建構子拋出的。如果該建構子宣告其 throws
子句中沒有任何異常,則返回一個長度為 0 的陣列。
public Type[] getGenericExceptionTypes()
如果異常型別是一個參數化型別,那麼為它返回的 Type 物件必須準確地反映源程式碼中使用的實際型別參數。
如果異常的型別是一個型別變數或是一個參數化型別,則創建它。否則將解析它。
GenericSignatureFormatError
- 如果一般方法的簽章不符合 Java Virtual Machine Specification, 3rd edition 指定的格式
TypeNotPresentException
- 如果底層方法的 throws 子句參考了不存在的型別宣告
MalformedParameterizedTypeException
- 如果底層方法的 throws 子句參考了因某種原因而無法實例化的參數化型別public boolean equals(Object obj)
Constructor
物件與指定的物件進行比較。如果物件相同,則返回 true。如果由相同的類別宣告並且具有相同的形參型別,那麼這兩個 Constructor
物件是相同的。
Object
中的 equals
obj
- 要與之比較的參考物件。
true
;否則返回 false
。Object.hashCode()
,
Hashtable
public int hashCode()
Constructor
的雜湊碼。該雜湊碼與底層建構子的宣告類別名的雜湊碼相同。
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
Constructor
的字元串。該字元串是作為建構子存取修飾符(如果有)格式化的,其後面是宣告類別的完全限定名,再往後是建構子形參型別的加括號的、逗號分隔的列表。例如:
public java.util.Hashtable(int,float)
建構子唯一可能的修飾符是存取修飾符 public、protected 或 private。這些修飾符只能出現一個,或者一個也不出現(如果建構子具有預設(包)存取權)。
Object
中的 toString
public String toGenericString()
Constructor
的字元串,其中包括型別參數。該字元串是作為建構子存取修飾符(如果有)格式化的,其後面是建構子的型別參數(如果有)的加尖括號的、逗號分隔的列表,再往後是宣告類別的完全限定名,再往後是該建構子的一般形參型別的加括號的、逗號分隔的列表。空格用來分隔存取修飾符與存取修飾符,以及存取修飾符與型別參數或返回值。如果沒有型別參數,則省略型別參數列表;如果存在型別參數列表,則用空格分隔列表與類別名。如果宣告建構子拋出異常,則參數列表後跟著一個空格,再往後是單詞 "throws" ,再往後是用逗號分隔的所拋出異常型別的列表。
建構子唯一可能的修飾符是存取修飾符 public、protected 或 private。這些修飾符只能出現一個,或者一個也不出現(如果建構子具有預設(包)存取權)。
Constructor
的字元串,其中包括型別參數public T newInstance(Object... initargs) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
Constructor
物件表示的建構子來創建該建構子的宣告類別的新實例,並用指定的初始化參數初始化該實例。個別參數會自動解包,以比對基本形參,必要時,基本參數和參考參數都要進行方法調用轉換。
如果底層建構子所需形參數為 0,則所提供的 initargs
陣列的長度可能為 0 或 null。
如果建構子的宣告類別是非靜態上下文的內部類別,則建構子的第一個參數需要是封閉實例;請參閱Java 語言規範 第 15.9.3 節。
如果所需的存取檢查和參數檢查獲得成功並且實例化繼續進行,這時建構子的宣告類別尚未初始化,則初始化這個類別。
如果建構子正常完成,則返回新創建且已初始化的實例。
initargs
- 將作為變數傳遞給建構子調用的物件陣列;基本型別的值被包裹在適當型別的套件裝器物件(如 Float
中的 float)中。
IllegalAccessException
- 如果此 Constructor
物件實施 Java 語言存取控制並且底層建構子是不可存取的。
IllegalArgumentException
- 如果實參和形參的數量不同;如果基本參數的解包轉換失敗;如果在可能的解包後,無法通過方法調用轉換將參數值轉換為相應的形參型別;如果此建構子屬於列舉型別。
InstantiationException
- 如果宣告底層建構子的類別表示抽象類別。
InvocationTargetException
- 如果底層建構子拋出異常。
ExceptionInInitializerError
- 如果此方法引發的初始化失敗。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 Annotation[][] getParameterAnnotations()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。