Contents | Prev | Next | Java Core Reflection |
package java.lang.reflect;
public final class Constructor extends Object implements Member
A Constructor
provides information about, and access to, a single constructor of a declared class. A Constructor
may be used to create and initialize a new instance of the class that declares the reflected constructor, provided the class is instantiable.
Only the Java Virtual Machine may create Constructor
objects; user code obtains Constructor
references via the methods getConstructor
, getConstructors
, getDeclaredConstructor
, and getDeclaredConstructors
of class Class
.
A Constructor
permits widening conversions to occur when matching the actual parameters to newInstance
with the underlying constructor's formal parameters, but it throws an IllegalArgumentException
if a narrowing conversion would occur.
public Class getDeclaringClass()
Returns the Class
object for the class that declares the constructor represented by this Constructor
object. public String getName()
Returns the name of the constructor represented by this Constructor
object. This is the same as the fully-qualified name of its declaring class. public int getModifiers()
Returns the Java language modifiers for the constructor represented by this Constructor
object, encoded in an integer. The Modifier
class should be used to decode the modifiers.The modifier encodings are defined in The Java Virtual Machine Specification, Table 4.4.
public Class[] getParameterTypes()
Returns an array of Class
objects that represent the formal parameter types, in declaration order, of the constructor represented by this Constructor
object. Returns an array of length 0
if the underlying constructor takes no parameters. public Class[] getExceptionTypes()
Returns an array of Class
objects that represent the classes of the checked exceptions thrown by the underlying constructor represented by this Constructor
object. Returns an array of length 0
if the constructor throws no checked exceptions. public boolean equals(Object obj)
Compares this Constructor
against the specified object. Returns true
if the objects are the same; false
otherwise. Two Constructor
objects are the same if they have the same declaring class and the same formal parameter types.
This method overrides the equals
method of class Object
.
public int hashCode()
Returns a hashcode for this Constructor
. The hashcode is the same as the hashcode for the Constructor
's declaring class name.
This method overrides the hashCode
method of class Object
.
public String toString()
Returns a string describing the underlying constructor represented by this Constructor
object. The string is formatted as the Java language modifiers for the underlying constructor, if any, followed by the fully-qualified name of class declaring the underlying constructor, followed by a parenthesized, comma-separated list of the fully-qualified names of the constructor's formal parameter types. If the constructor throws checked exceptions, the parameter list is followed by a space, followed by the word throws
followed by a comma-separated list of the fully-qualified names of the thrown exception types. For example:public java.util.Hashtable(int,float)The only possible modifiers for a constructor are one of
public
, protected
or private
, or none if the constructor has default (package) access.
This method overrides the toString
method of class Object
.
Uses the constructor represented by thispublic Object newInstance(Object initargs[])
throws InstantiationException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException
Constructor
object to create and initialize a new instance of the constructor's declaring class, with the specified initialization parameters. Individual parameters are automatically unwrapped to match primitive formal parameters, and both primitive and reference parameters are subject to widening conversions as necessary. Returns the newly created and initialized object.Creation proceeds with the following steps, in order:
InstantiationException
.Constructor
object enforces Java language access control and the underlying constructor is inaccessible, the creation throws an IllegalAccessException
.initargs
is different from the number of formal parameters required by the underlying constructor, the creation throws an IllegalArgumentException
. If the underlying constructor takes no parameters, initargs
may be null
.initargs
array:null
, the conversion fails by throwing a NullPointerException
. If the object parameter is not an instance of a standard Java wrapper class, the conversion fails by throwing an IllegalArgumentException
.IllegalArgumentException
.InvocationTargetException
; newInstance
then completes abruptly by throwing this new exception.newInstance
.