类 java.lang.reflect.Constructor
java.lang.Object
|
+----java.lang.reflect.Constructor
- public final class Constructor
- extends Object
- implements Member
构造子提供相关信息、访问和类的单个构造子。
当用 newInstance() 的实参匹配基本构造子的形参时,构造子允许进行扩展转换,但若发生缩减转换,则抛出 IllegalArgumentException 。
- 参见:
- Member, Class, getConstructors, getConstructor, getDeclaredConstructors
方法索引
- equals(Object)
- 将该对象与指定对象比较。
- getDeclaringClass()
- 返回表示类的 Class 对象,此类用于说明该 Constructor 对象表示的构造子。
- getExceptionTypes()
- 返回 Class 对象数组,此对象用于表示该 Constructor 对象表示的基本构造子所抛出校验异常的类型。
- getModifiers()
- 以整数形式返回该 Constructor 对象所表示构造子的 Java 语言修饰词。
- getName()
- 以字符串形式返回该构造子名。
- getParameterTypes()
- 返回 Class 对象类型数组,此对象按声明顺序来表示该 Constructor 对象所表示构造子的形参。
- hashCode()
- 返回该 Constructor 的散列码。
- newInstance(Object[])
- 使用该 Constructor 表示的构造子来创建构造子说明类的新实例,并用指定初始化参数将其初始化。
- toString()
- 返回描述该 Constructor 的字符串。
方法
getDeclaringClass
public Class getDeclaringClass()
- 返回表示类的 Class 对象,此类用于说明该 Constructor 对象所表示的构造子。
getName
public String getName()
- 以字符串形式返回该构造子名。通常与构造子的说明类同名。
getModifiers
public native int getModifiers()
- 以整数形式返回该 Constructor 对象所表示构造子的 Java 语言修饰词。使用该 Modifier 类来为修饰词译码。
- 参见:
- Modifier
getParameterTypes
public Class[] getParameterTypes()
- 返回 Class 对象类型数组,此对象按声明顺序来表示该 Constructor 对象所表示构造子的形参。若基本构造子未获得参数,则返回长度为零的数组。
getExceptionTypes
public Class[] getExceptionTypes()
- 返回 Class 对象类型数组,此对象表示该 Constructor
对象表示的基本构造子所抛出的校验异常的类型。若基本构造子未抛出校验异常,则返回长度为零的数组。
equals
public boolean equals(Object obj)
- 将该 Constructor 与指定对象比较。若相同则为 true 。若两个 Constructor 使用相同的类说明且具有相同的形参,则其相同。
- 覆盖:
- 类 Object 中的 equals
hashCode
public int hashCode()
- 返回该 Constructor 的散列码。该散列码与基本构造子的说明类名相同。
- 覆盖:
- 类 Object 中的 hashCode
toString
public String toString()
- 返回描述该 Constructor 的字符串。若字符串后附带任何说明类的完整路径名或附带任何构造子形参类型的插入语、逗号分隔列表,则将字符串格式化为构造子访问修饰词。例如:
public java.util.Hashtable(int,float)
该构造子唯一可能的修饰词是访问修饰词 public、
protected 或
private 。仅可显示其中一种。若构造子有缺省 (包) 访问则不显示。
- 覆盖:
- 类 Object 中的 toString 。
newInstance
public native Object newInstance(Object initargs[]) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
- 使用该 Constructor 对象表示的构造子来创建该构造子说明类的新实例,并用指定初始化参数将其初始化。将个别参数自动解包来匹配原始形参,必要时可对原始参数和形参进行扩展转换。返回新创建和初始化的对象。
依次按下列步骤进行创建:
若说明基本构造子的类表示一个抽象类,则创建抛出 InstantiationException 。
若该 Constructor 对象使 Java 语言存取控制且基本构造子不可存取,则创建抛出 IllegalAccessException 。
若 initargs 提供的实参数目与基本构造子需要的形参数目不同,
则抛出 IllegalArgumentException 。
创建构造子说明类的新实例并将域初始成缺省初始值。
对于 initargs 数组提供的每个实参:
若相应的形参有原始类型,则试进行解包转换来将对象值转换为原始类型值。若尝试失败,则抛出 IllegalArgumentException 。
进行可能的解包之后,若不能将参数值通过标志或扩展转换变换为相应形参类型,则抛出 IllegalArgumentException 。
将控制转移到基本构造子来初始化新实例。若构造子迅速抛出异常,则将异常放置在 InvocationTargetException 中,并依次抛给 newInstance
的调用方。
若构造子完全正常,则返回新创建并初始化的实例。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若实参与形参的数目不同或解包转换失败。
- 抛出:
InstantiationException
- 若说明基本构造子的类代表一个抽象类。
- 抛出:
InvocationTargetException
- 若基本构造子抛出异常。