java.lang.reflect

Class Constructor<T>

public final class Constructor<T> extends AccessibleObject implements Member, GenericDeclaration

The Constructor class represents a constructor of a class. It also allows dynamic creation of an object, via reflection. Invocation on Constructor objects knows how to do widening conversions, but throws {@link IllegalArgumentException} if a narrowing conversion would be necessary. You can query for information on this Constructor regardless of location, but construction access may be limited by Java language access controls. If you can't do it in the compiler, you can't normally do it here either.

Note: This class returns and accepts types as Classes, even primitive types; there are Class types defined that represent each different primitive type. They are java.lang.Boolean.TYPE, java.lang.Byte.TYPE,, also available as boolean.class, byte.class, etc. These are not to be confused with the classes java.lang.Boolean, java.lang.Byte, etc., which are real classes.

Also note that this is not a serializable class. It is entirely feasible to make it serializable using the Externalizable interface, but this is on Sun, not me.

Since: 1.1

See Also: Member Class (Class[]) (Class[]) getConstructors getDeclaredConstructors

UNKNOWN: updated to 1.4

Method Summary
booleanequals(Object obj)
Compare two objects to see if they are semantically equivalent.
<T extends Annotation> TgetAnnotation(Class<T> annoClass)
Annotation[]getDeclaredAnnotations()
Class<T>getDeclaringClass()
Gets the class that declared this constructor.
Class<?>[]getExceptionTypes()
Get the exception types this constructor says it throws, in no particular order.
Type[]getGenericExceptionTypes()
Returns an array of Type objects that represents the exception types declared by this constructor, in declaration order.
Type[]getGenericParameterTypes()
Returns an array of Type objects that represents the parameter list for this constructor, in declaration order.
intgetModifiers()
Gets the modifiers this constructor uses.
StringgetName()
Gets the name of this constructor (the non-qualified name of the class it was declared in).
Annotation[][]getParameterAnnotations()
Class<?>[]getParameterTypes()
Get the parameter list for this constructor, in declaration order.
TypeVariable<Constructor<T>>[]getTypeParameters()
Returns an array of TypeVariable objects that represents the type variables declared by this constructor, in declaration order.
inthashCode()
Get the hash code for the Constructor.
booleanisSynthetic()
Return true if this constructor is synthetic, false otherwise.
booleanisVarArgs()
Return true if this is a varargs constructor, that is if the constructor takes a variable number of arguments.
TnewInstance(Object... args)
Create a new instance by invoking the constructor.
StringtoGenericString()
StringtoString()
Get a String representation of the Constructor.

Method Detail

equals

public boolean equals(Object obj)
Compare two objects to see if they are semantically equivalent. Two Constructors are semantically equivalent if they have the same declaring class and the same parameter list.

Parameters: o the object to compare to

Returns: true if they are equal; false if not.

getAnnotation

public <T extends Annotation> T getAnnotation(Class<T> annoClass)

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()

getDeclaringClass

public Class<T> getDeclaringClass()
Gets the class that declared this constructor.

Returns: the class that declared this member

getExceptionTypes

public Class<?>[] getExceptionTypes()
Get the exception types this constructor says it throws, in no particular order. If the constructor has no throws clause, returns a 0-length array (not null).

Returns: a list of the types in the constructor's throws clause

getGenericExceptionTypes

public Type[] getGenericExceptionTypes()
Returns an array of Type objects that represents the exception types declared by this constructor, in declaration order. An array of size zero is returned if this constructor declares no exceptions.

Returns: the exception types declared by this constructor.

Throws: GenericSignatureFormatError if the generic signature does not conform to the format specified in the Virtual Machine specification, version 3.

Since: 1.5

getGenericParameterTypes

public Type[] getGenericParameterTypes()
Returns an array of Type objects that represents the parameter list for this constructor, in declaration order. An array of size zero is returned if this constructor takes no parameters.

Returns: a list of the types of the constructor's parameters

Throws: GenericSignatureFormatError if the generic signature does not conform to the format specified in the Virtual Machine specification, version 3.

Since: 1.5

getModifiers

public int getModifiers()
Gets the modifiers this constructor uses. Use the Modifier class to interpret the values. A constructor can only have a subset of the following modifiers: public, private, protected.

Returns: an integer representing the modifiers to this Member

See Also: Modifier

getName

public String getName()
Gets the name of this constructor (the non-qualified name of the class it was declared in).

Returns: the name of this constructor

getParameterAnnotations

public Annotation[][] getParameterAnnotations()

getParameterTypes

public Class<?>[] getParameterTypes()
Get the parameter list for this constructor, in declaration order. If the constructor takes no parameters, returns a 0-length array (not null).

Returns: a list of the types of the constructor's parameters

getTypeParameters

public TypeVariable<Constructor<T>>[] getTypeParameters()
Returns an array of TypeVariable objects that represents the type variables declared by this constructor, in declaration order. An array of size zero is returned if this constructor has no type variables.

Returns: the type variables associated with this constructor.

Throws: GenericSignatureFormatError if the generic signature does not conform to the format specified in the Virtual Machine specification, version 3.

Since: 1.5

hashCode

public int hashCode()
Get the hash code for the Constructor. The Constructor hash code is the hash code of the declaring class's name.

Returns: the hash code for the object

isSynthetic

public boolean isSynthetic()
Return true if this constructor is synthetic, false otherwise. A synthetic member is one which is created by the compiler, and which does not appear in the user's source code.

Since: 1.5

isVarArgs

public boolean isVarArgs()
Return true if this is a varargs constructor, that is if the constructor takes a variable number of arguments.

Since: 1.5

newInstance

public T newInstance(Object... args)
Create a new instance by invoking the constructor. Arguments are automatically unwrapped and widened, if needed.

If this class is abstract, you will get an InstantiationException. If the constructor takes 0 arguments, you may use null or a 0-length array for args.

If this Constructor enforces access control, your runtime context is evaluated, and you may have an IllegalAccessException if you could not create this object in similar compiled code. If the class is uninitialized, you trigger class initialization, which may end in a ExceptionInInitializerError.

Then, the constructor is invoked. If it completes normally, the return value will be the new object. If it completes abruptly, the exception is wrapped in an InvocationTargetException.

Parameters: args the arguments to the constructor

Returns: the newly created object

Throws: IllegalAccessException if the constructor could not normally be called by the Java code (i.e. it is not public) IllegalArgumentException if the number of arguments is incorrect; or if the arguments types are wrong even with a widening conversion InstantiationException if the class is abstract InvocationTargetException if the constructor throws an exception ExceptionInInitializerError if construction triggered class initialization, which then failed

toGenericString

public String toGenericString()

toString

public String toString()
Get a String representation of the Constructor. A Constructor's String representation is "<modifier> <classname>(<paramtypes>) throws <exceptions>", where everything after ')' is omitted if there are no exceptions.
Example: public java.io.FileInputStream(java.lang.Runnable) throws java.io.FileNotFoundException

Returns: the String representation of the Constructor