Most visited

Recently visited

Added in API level 1

Constructor

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

也可以看看:

Summary

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)

将此 Constructor与指定的对象进行比较。

<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表示声明此表示的构造方法的类对象 Constructor对象。

Class[]<?> getExceptionTypes()

返回一个包含 Class对象的数组, Class对象表示声明为由此 Constructor对象表示的基础构造方法所抛出的异常的类型。

Type[] getGenericExceptionTypes()

返回表示由此 Constructor对象声明要抛出的异常的 Type对象的数组。

Type[] getGenericParameterTypes()

返回 Type对象的数组, Type对象以声明顺序表示由此 Constructor对象表示的方法的形式参数类型。

int getModifiers()

以整数形式返回由此 Constructor对象表示的构造函数的Java语言修饰符。

String getName()

以字符串形式返回此构造函数的名称。

Annotation[][] getParameterAnnotations()

返回一个数组数组,该数组表示由此 Constructor对象表示的方法的声明顺序形式参数的注释。

Class[]<?> getParameterTypes()

返回一个包含 Class对象的数组, Class对象以声明顺序表示由此 Constructor对象表示的构造方法的形式参数类型。

TypeVariable[]<Constructor<T>> getTypeParameters()

以声明顺序 GenericDeclaration表示由此 GenericDeclaration对象表示的通用声明声明的类型变量的 TypeVariable对象数组。

int hashCode()

返回此 Constructor的哈希 Constructor

boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
boolean isSynthetic()

如果此构造函数是一个合成构造函数,则返回true ; 否则返回false

boolean isVarArgs()

如果此构造函数被声明为接受可变数量的参数,则返回true ; 否则返回false

T newInstance(Object... args)

使用此 Constructor对象所表示的构造函数来创建并初始化构造函数的声明类的新实例,并使用指定的初始化参数。

String toGenericString()

返回描述此 Constructor的字符串,包括类型参数。

String toString()

返回描述此 Constructor的字符串。

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

Fields

accessFlags

int accessFlags

编码访问的位(例如公共,私有)以及其他运行时特定的标志

declaringClass

Class<?> declaringClass

方法的声明类

declaringClassOfOverriddenMethod

Class<?> declaringClassOfOverriddenMethod

Overriden方法的声明类(与declaringClass相同,除非declaringClass是代理类)

dexMethodIndex

int dexMethodIndex

此方法的索引在其定义的dex文件中

Public methods

equals

Added in API level 1
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.

getAnnotation

Added in API level 1
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

getAnnotation

Added in API level 14
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

getAnnotations

Added in API level 1
Annotation[] getAnnotations ()

返回此元素上的所有注释。 (如果此元素没有注释,则返回长度为零的数组。)此方法的调用方可自由修改返回的数组; 它将不会影响返回给其他调用者的数组。

Returns
Annotation[] all annotations present on this element

getDeclaredAnnotations

Added in API level 1
Annotation[] getDeclaredAnnotations ()

返回直接出现在此元素上的所有注释。 与此接口中的其他方法不同,此方法会忽略继承的注释。 (如果此元素上没有注释,则返回长度为零的数组。)此方法的调用方可自由修改返回的数组; 它将不会影响返回给其他调用者的数组。

Returns
Annotation[] All annotations directly present on this element

getDeclaringClass

Added in API level 1
Class<T> getDeclaringClass ()

返回 Class表示声明此表示的构造方法的类对象 Constructor对象。

Returns
Class<T>

getExceptionTypes

Added in API level 1
Class[]<?> getExceptionTypes ()

返回一个包含Class对象的数组, Class对象表示声明由此Constructor对象表示的基础构造方法抛出的异常的类型。 如果构造函数在其throws子句中声明无例外,则返回长度为0的数组。

Returns
Class[]<?> the exception types declared as being thrown by the constructor this object represents

getGenericExceptionTypes

Added in API level 1
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

getGenericParameterTypes

Added in API level 1
Type[] getGenericParameterTypes ()

返回一个Type对象的数组, Type对象以声明顺序表示由此Constructor对象表示的方法的形式参数类型。 如果基础方法不带参数,则返回长度为0的数组。

如果形式参数类型是参数化类型,则返回的 Type对象必须准确反映源代码中使用的实际类型参数。

如果形式参数类型是类型变量或参数化类型,则会创建它。 否则,它已解决。

Returns
Type[] an array of Types 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

getModifiers

Added in API level 1
int getModifiers ()

以整数形式返回由此Constructor对象表示的构造函数的Java语言修饰符。 应该使用Modifier类来解码修饰符。

Returns
int

也可以看看:

getName

Added in API level 1
String getName ()

以字符串形式返回此构造函数的名称。 这是构造函数声明类的二进制名称。

Returns
String the name of this method

getParameterAnnotations

Added in API level 1
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

getParameterTypes

Added in API level 1
Class[]<?> getParameterTypes ()

返回的数组Class对象表示的形参类型,在声明顺序通过这表示构造的Constructor对象。 如果底层构造函数不带参数,则返回长度为0的数组。

Returns
Class[]<?> the parameter types for the constructor this object represents

getTypeParameters

Added in API level 1
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

hashCode

Added in API level 1
int hashCode ()

返回此Constructor的哈希Constructor 哈希码与底层构造函数的声明类名称的哈希码相同。

Returns
int a hash code value for this object.

isAnnotationPresent

Added in API level 1
boolean isAnnotationPresent (Class<? extends Annotation> annotationType)

Parameters
annotationType Class
Returns
boolean

isSynthetic

Added in API level 1
boolean isSynthetic ()

如果此构造函数是一个合成构造函数,则返回true ; 否则返回false

Returns
boolean true if and only if this constructor is a synthetic constructor as defined by The Java™ Language Specification.

isVarArgs

Added in API level 1
boolean isVarArgs ()

如果此构造函数被声明为接受可变数量的参数,则返回true ; 否则返回false

Returns
boolean true if an only if this constructor was declared to take a variable number of arguments.

newInstance

Added in API level 1
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.

toGenericString

Added in API level 1
String toGenericString ()

返回描述此Constructor的字符串,包括类型参数。 该字符串被格式化为构造函数访问修饰符(如果有的话),然后是构造函数的类型参数的角度括号逗号分隔列表(如果有的话),随后是声明类的完全限定名称,然后是带括号的逗号 - 分离的构造函数的通用形式参数类型列表。 如果此构造函数被声明为可变数量的参数,而不是将最后一个参数表示为“ Type[] ”,则表示为“ Type... ”。 空间用于将访问修饰符彼此分开,并与类型参数或返回类型分开。 如果没有类型参数,则省略类型参数列表; 如果类型参数列表存在,则空格将列表与类名称分开。 如果构造函数声明为抛出异常,则参数列表后面跟着一个空格,后跟单词“ throws ”,后跟逗号分隔的引发异常类型列表。

对构造方法唯一可能的修饰符是访问修饰符publicprotected或者private 只有其中一个可能出现,或者如果构造函数具有默认(包)访问权限,则无。

Returns
String a string describing this Constructor, include type parameters

toString

Added in API level 1
String toString ()

返回描述此Constructor的字符串。 该字符串被格式化为构造函数访问修饰符(如果有的话),后面是声明类的完全限定名称,后跟括号,以逗号分隔的构造函数正式参数类型列表。 例如:

    public java.util.Hashtable(int,float)
 

对构造方法唯一可能的修饰符是访问修饰符publicprotected或者private 只有其中一个可能出现,或者如果构造函数具有默认(包)访问权限,则无。

Returns
String a string representation of the object.

Protected methods

compareParameters

int compareParameters (Class[]<?> params)

Parameters
params Class
Returns
int

equalMethodParameters

boolean equalMethodParameters (Class[]<?> params)

Parameters
params Class
Returns
boolean

Hooray!