Class java.lang.reflect.Constructor

Constructor provides information about, and access to, a single
constructor for a class.

Constructor permits widening conversions to occur when matching the
actual parameters to newInstance() with the underlying
constructor's formal parameters, but throws an
IllegalArgumentException if a narrowing conversion would occur.

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.

Returns an array of Class objects that represent the types 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.

Compares this Constructor against the specified object.
Returns true if the objects are the same. Two Constructors are
the same if they were declared by the same class and have the
same formal parameter types.

Return a string describing this Constructor. The string is
formatted as the constructor access modifiers, if any,
followed by the fully-qualified name of the declaring class,
followed by a parenthesized, comma-separated list of the
constructor's formal parameter types. For example:

public java.util.Hashtable(int,float)

The only possible modifiers for constructors are the access
modifiers public, protected or
private. Only one of these may appear, or none if the
constructor has default (package) access.

Uses the constructor represented by this 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:

If the class that declares the underlying constructor
represents an abstract class, the creation throws an
InstantiationException.

If this Constructor object enforces Java language access
control and the underlying constructor is inaccessible, the
creation throws an IllegalAccessException.

If the number of actual parameters supplied via initargs is
different from the number of formal parameters required by the
underlying constructor, the creation throws an
IllegalArgumentException.

A new instance of the constructor's declaring class is
created, and its fields are initialized to their default
initial values.

For each actual parameter in the supplied initargs array:

If the corresponding formal parameter has a primitive type,
an unwrapping conversion is attempted to convert the object
value to a value of the primitive type. If this attempt fails,
the creation throws an IllegalArgumentException.

If, after possible unwrapping, the parameter value cannot be
converted to the corresponding formal parameter type by an
identity or widening conversion, the creation throws an
IllegalArgumentException.

Control transfers to the underlying constructor to
initialize the new instance. If the constructor completes
abruptly by throwing an exception, the exception is placed in
an InvocationTargetException and thrown in turn to the caller
of newInstance.

If the constructor completes normally, returns the newly
created and initialized instance.