public final class Constructor
extends AccessibleObject
implements GenericDeclaration, Member
java.lang.Object | ||
↳ | java.lang.reflect.AccessibleObject | |
↳ | java.lang.reflect.Constructor<T> |
Constructor
提供关于和访问一个类的单个构造函数的信息。
Constructor
允许在将实际参数与newInstance()与基础构造函数的形式参数进行匹配时扩展转换,但如果发生缩小转换则抛出 IllegalArgumentException
。
Inherited constants |
---|
From interface java.lang.reflect.Member
|
Fields |
|
---|---|
protected int |
accessFlags 编码访问的位(例如, |
protected Class<?> |
declaringClass 方法的声明类 |
protected Class<?> |
declaringClassOfOverriddenMethod Overriden方法的声明类(与declaringClass相同,除非declaringClass是代理类) |
protected int |
dexMethodIndex 此方法的索引在其定义的dex文件中 |
Public methods |
|
---|---|
boolean |
equals(Object obj) 将此 |
<T extends Annotation> T |
getAnnotation(Class<T> annotationClass) 如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。 |
<A extends Annotation> A |
getAnnotation(Class<A> annotationType) 如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。 |
Annotation[] |
getAnnotations() 返回此元素上的所有注释。 |
Annotation[] |
getDeclaredAnnotations() 返回直接出现在此元素上的所有注释。 |
Class<T> |
getDeclaringClass() 返回 |
Class[]<?> |
getExceptionTypes() 返回一个包含 |
Type[] |
getGenericExceptionTypes() 返回表示由此 |
Type[] |
getGenericParameterTypes() 返回 |
int |
getModifiers() 以整数形式返回由此 |
String |
getName() 以字符串形式返回此构造函数的名称。 |
Annotation[][] |
getParameterAnnotations() 返回一个数组数组,该数组表示由此 |
Class[]<?> |
getParameterTypes() 返回一个包含 |
TypeVariable[]<Constructor<T>> |
getTypeParameters() 以声明顺序 |
int |
hashCode() 返回此 |
boolean |
isAnnotationPresent(Class<? extends Annotation> annotationType) |
boolean |
isSynthetic() 如果此构造函数是一个合成构造函数,则返回 |
boolean |
isVarArgs() 如果此构造函数被声明为接受可变数量的参数,则返回 |
T |
newInstance(Object... args) 使用此 |
String |
toGenericString() 返回描述此 |
String |
toString() 返回描述此 |
Protected methods |
|
---|---|
int |
compareParameters(Class[]<?> params) |
boolean |
equalMethodParameters(Class[]<?> params) |
Inherited methods |
|
---|---|
From class java.lang.reflect.AccessibleObject
|
|
From class java.lang.Object
|
|
From interface java.lang.reflect.AnnotatedElement
|
|
From interface java.lang.reflect.GenericDeclaration
|
|
From interface java.lang.reflect.Member
|
int accessFlags
编码访问的位(例如公共,私有)以及其他运行时特定的标志
Class<?> declaringClassOfOverriddenMethod
Overriden方法的声明类(与declaringClass相同,除非declaringClass是代理类)
int dexMethodIndex
此方法的索引在其定义的dex文件中
boolean equals (Object obj)
将此Constructor
与指定的对象进行比较。 如果对象相同,则返回true。 如果两个Constructor
对象由同一个类声明并具有相同的形式参数类型,则它们是相同的。
Parameters | |
---|---|
obj |
Object : the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if this object is the same as the obj argument; false otherwise. |
T getAnnotation (Class<T> annotationClass)
如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。
Parameters | |
---|---|
annotationClass |
Class : the Class object corresponding to the annotation type |
Returns | |
---|---|
T |
this element's annotation for the specified annotation type if present on this element, else null |
A getAnnotation (Class<A> annotationType)
如果存在这样的注释,则返回指定类型的此元素的注释,否则返回null。
Parameters | |
---|---|
annotationType |
Class : the Class object corresponding to the annotation type |
Returns | |
---|---|
A |
this element's annotation for the specified annotation type if present on this element, else null |
Throws | |
---|---|
NullPointerException |
Annotation[] getAnnotations ()
返回此元素上的所有注释。 (如果此元素没有注释,则返回长度为零的数组。)此方法的调用方可自由修改返回的数组; 它将不会影响返回给其他调用者的数组。
Returns | |
---|---|
Annotation[] |
all annotations present on this element |
Annotation[] getDeclaredAnnotations ()
返回直接出现在此元素上的所有注释。 与此接口中的其他方法不同,此方法会忽略继承的注释。 (如果此元素上没有注释,则返回长度为零的数组。)此方法的调用方可自由修改返回的数组; 它将不会影响返回给其他调用者的数组。
Returns | |
---|---|
Annotation[] |
All annotations directly present on this element |
Class<T> getDeclaringClass ()
返回 Class
表示声明此表示的构造方法的类对象 Constructor
对象。
Returns | |
---|---|
Class<T> |
Class[]<?> getExceptionTypes ()
返回一个包含Class
对象的数组, Class
对象表示声明由此Constructor
对象表示的基础构造方法抛出的异常的类型。 如果构造函数在其throws
子句中声明无例外,则返回长度为0的数组。
Returns | |
---|---|
Class[]<?> |
the exception types declared as being thrown by the constructor this object represents |
Type[] getGenericExceptionTypes ()
返回表示由此Constructor
对象声明要引发的异常的Type
对象的数组。 如果基础方法的throws
子句中未声明任何例外,则返回长度为0的数组。
如果异常类型是类型变量或参数化类型,则会创建它。 否则,它已解决。
Returns | |
---|---|
Type[] |
an array of Types that represent the exception types thrown by the underlying method |
Throws | |
---|---|
GenericSignatureFormatError |
if the generic method signature does not conform to the format specified in The Java™ Virtual Machine Specification |
TypeNotPresentException |
if the underlying method's throws clause refers to a non-existent type declaration |
MalformedParameterizedTypeException |
if the underlying method's throws clause refers to a parameterized type that cannot be instantiated for any reason |
Type[] getGenericParameterTypes ()
返回一个Type
对象的数组, Type
对象以声明顺序表示由此Constructor
对象表示的方法的形式参数类型。 如果基础方法不带参数,则返回长度为0的数组。
如果形式参数类型是参数化类型,则返回的 Type
对象必须准确反映源代码中使用的实际类型参数。
如果形式参数类型是类型变量或参数化类型,则会创建它。 否则,它已解决。
Returns | |
---|---|
Type[] |
an array of Type s that represent the formal parameter types of the underlying method, in declaration order |
Throws | |
---|---|
GenericSignatureFormatError |
if the generic method signature does not conform to the format specified in The Java™ Virtual Machine Specification |
TypeNotPresentException |
if any of the parameter types of the underlying method refers to a non-existent type declaration |
MalformedParameterizedTypeException |
if any of the underlying method's parameter types refer to a parameterized type that cannot be instantiated for any reason |
int getModifiers ()
以整数形式返回由此Constructor
对象表示的构造函数的Java语言修饰符。 应该使用Modifier
类来解码修饰符。
Returns | |
---|---|
int |
也可以看看:
String getName ()
以字符串形式返回此构造函数的名称。 这是构造函数声明类的二进制名称。
Returns | |
---|---|
String |
the name of this method |
Annotation[][] getParameterAnnotations ()
返回一个数组数组,该数组表示由此Constructor
对象表示的方法的声明顺序形式参数的注释。 (如果底层方法是无参数的,则返回一个长度为零的数组。如果该方法有一个或多个参数,则为每个参数返回一个长度为零的嵌套数组,无需注释)。返回数组中包含的注释对象是可序列化的。 此方法的调用者可以自由修改返回的数组; 它将不会影响返回给其他调用者的数组。
Returns | |
---|---|
Annotation[][] |
an array of arrays that represent the annotations on the formal parameters, in declaration order, of the method represented by this Constructor object |
Class[]<?> getParameterTypes ()
返回的数组Class
对象表示的形参类型,在声明顺序通过这表示构造的Constructor
对象。 如果底层构造函数不带参数,则返回长度为0的数组。
Returns | |
---|---|
Class[]<?> |
the parameter types for the constructor this object represents |
TypeVariable[]<Constructor<T>> getTypeParameters ()
以声明顺序GenericDeclaration
表示由此GenericDeclaration
对象表示的通用声明声明的类型变量的TypeVariable
对象数组。 如果基础泛型声明声明没有类型变量,则返回长度为0的数组。
Returns | |
---|---|
TypeVariable[]<Constructor<T>> |
an array of TypeVariable objects that represent the type variables declared by this generic declaration |
Throws | |
---|---|
GenericSignatureFormatError |
if the generic signature of this generic declaration does not conform to the format specified in The Java™ Virtual Machine Specification |
int hashCode ()
返回此Constructor
的哈希Constructor
。 哈希码与底层构造函数的声明类名称的哈希码相同。
Returns | |
---|---|
int |
a hash code value for this object. |
boolean isAnnotationPresent (Class<? extends Annotation> annotationType)
Parameters | |
---|---|
annotationType |
Class
|
Returns | |
---|---|
boolean |
boolean isSynthetic ()
如果此构造函数是一个合成构造函数,则返回true
; 否则返回false
。
Returns | |
---|---|
boolean |
true if and only if this constructor is a synthetic constructor as defined by The Java™ Language Specification. |
boolean isVarArgs ()
如果此构造函数被声明为接受可变数量的参数,则返回true
; 否则返回false
。
Returns | |
---|---|
boolean |
true if an only if this constructor was declared to take a variable number of arguments. |
T newInstance (Object... args)
使用此Constructor
对象表示的构造函数来创建并初始化构造函数的声明类的新实例,并使用指定的初始化参数。 单个参数会自动解包以匹配原始形式参数,并且必要时,原始参数和参考参数都会受方法调用转换的影响。
如果基础构造函数要求的形式参数数量为0,则提供的 initargs
数组可能长度为0或为空。
如果构造函数的声明类是非静态上下文中的内部类,则构造函数的第一个参数需要是包含的实例; 请参阅The Java™ Language Specification的第15.9.3 节 。
如果所需的访问和参数检查成功,并且实例化将继续进行,则构造函数的声明类如果尚未初始化,则会进行初始化。
如果构造函数正常完成,则返回新创建并初始化的实例。
Parameters | |
---|---|
args |
Object : array of objects to be passed as arguments to the constructor call; values of primitive types are wrapped in a wrapper object of the appropriate type (e.g. a float in a Float ) |
Returns | |
---|---|
T |
a new object created by calling the constructor this object represents |
Throws | |
---|---|
IllegalAccessException |
if this Constructor object is enforcing Java language access control and the underlying constructor is inaccessible. |
IllegalArgumentException |
if the number of actual and formal parameters differ; if an unwrapping conversion for primitive arguments fails; or if, after possible unwrapping, a parameter value cannot be converted to the corresponding formal parameter type by a method invocation conversion; if this constructor pertains to an enum type. |
InstantiationException |
if the class that declares the underlying constructor represents an abstract class. |
InvocationTargetException |
if the underlying constructor throws an exception. |
ExceptionInInitializerError |
if the initialization provoked by this method fails. |
String toGenericString ()
返回描述此Constructor
的字符串,包括类型参数。 该字符串被格式化为构造函数访问修饰符(如果有的话),然后是构造函数的类型参数的角度括号逗号分隔列表(如果有的话),随后是声明类的完全限定名称,然后是带括号的逗号 - 分离的构造函数的通用形式参数类型列表。 如果此构造函数被声明为可变数量的参数,而不是将最后一个参数表示为“ Type[] ”,则表示为“ Type... ”。 空间用于将访问修饰符彼此分开,并与类型参数或返回类型分开。 如果没有类型参数,则省略类型参数列表; 如果类型参数列表存在,则空格将列表与类名称分开。 如果构造函数声明为抛出异常,则参数列表后面跟着一个空格,后跟单词“ throws
”,后跟逗号分隔的引发异常类型列表。
对构造方法唯一可能的修饰符是访问修饰符public
, protected
或者private
。 只有其中一个可能出现,或者如果构造函数具有默认(包)访问权限,则无。
Returns | |
---|---|
String |
a string describing this Constructor , include type parameters |
String toString ()
返回描述此Constructor
的字符串。 该字符串被格式化为构造函数访问修饰符(如果有的话),后面是声明类的完全限定名称,后跟括号,以逗号分隔的构造函数正式参数类型列表。 例如:
public java.util.Hashtable(int,float)
对构造方法唯一可能的修饰符是访问修饰符public
, protected
或者private
。 只有其中一个可能出现,或者如果构造函数具有默认(包)访问权限,则无。
Returns | |
---|---|
String |
a string representation of the object. |
boolean equalMethodParameters (Class[]<?> params)
Parameters | |
---|---|
params |
Class
|
Returns | |
---|---|
boolean |