Package java.lang.reflect
Class Constructor<T>
java.lang.Object
java.lang.reflect.AccessibleObject
java.lang.reflect.Constructor<T>
- Type Parameters:
T- the class that declares this constructor
- All Implemented Interfaces:
AnnotatedElement,GenericDeclaration,Member
public final class Constructor<T> extends AccessibleObject implements GenericDeclaration, Member
This class represents a constructor. Information about the constructor can be
accessed, and the constructor can be invoked dynamically.
-
Field Summary
-
Method Summary
Modifier and Type Method Description booleanequals(Object object)Indicates whether or not the specifiedobjectis equal to this constructor.protected Annotation[]getDeclaredAnnotations(boolean copy)Class<T>getDeclaringClass()Returns the class that declares this constructor.Class<?>[]getExceptionTypes()Returns the exception types as an array ofClassinstances.Type[]getGenericExceptionTypes()Returns the exception types as an array ofTypeinstances.Type[]getGenericParameterTypes()Returns the generic parameter types as an array ofTypeinstances, in declaration order.intgetModifiers()Returns the modifiers for this constructor.StringgetName()Returns the name of this constructor.Annotation[][]getParameterAnnotations()Returns an array of arrays that represent the annotations of the formal parameters of this constructor.Class<?>[]getParameterTypes()Returns an array of theClassobjects associated with the parameter types of this constructor.protected StringgetSignatureAttribute()TypeVariable<Constructor<T>>[]getTypeParameters()Returns the declared type parameters in declaration order.inthashCode()Returns an integer hash code for this constructor.booleanisSynthetic()Indicates whether or not this constructor is synthetic (artificially introduced by the compiler).booleanisVarArgs()Indicates whether or not this constructor takes a variable number of arguments.TnewInstance(Object... args)Returns a new instance of the declaring class, initialized by dynamically invoking the constructor represented by thisConstructorobject.StringtoGenericString()Returns the string representation of the constructor's declaration, including the type parameters.StringtoString()Returns a string containing a concise, human-readable description of this constructor.Methods inherited from class java.lang.reflect.AccessibleObject
getAnnotation, getAnnotations, getDeclaredAnnotations, isAccessible, isAnnotationPresent, setAccessible, setAccessible
-
Method Details
-
getSignatureAttribute
-
getTypeParameters
Description copied from interface:GenericDeclarationReturns the declared type parameters in declaration order. If there are no type parameters, this method returns a zero length array.- Specified by:
getTypeParametersin interfaceGenericDeclaration- Returns:
- the declared type parameters in declaration order
-
toGenericString
Returns the string representation of the constructor's declaration, including the type parameters.- Returns:
- the string representation of the constructor's declaration
-
getGenericParameterTypes
Returns the generic parameter types as an array ofTypeinstances, in declaration order. If this constructor has no generic parameters, an empty array is returned.- Returns:
- the parameter types
- Throws:
GenericSignatureFormatError- if the generic constructor signature is invalidTypeNotPresentException- if any parameter type points to a missing typeMalformedParameterizedTypeException- if any parameter type points to a type that cannot be instantiated for some reason
-
getGenericExceptionTypes
Returns the exception types as an array ofTypeinstances. If this constructor has no declared exceptions, an empty array will be returned.- Returns:
- an array of generic exception types
- Throws:
GenericSignatureFormatError- if the generic constructor signature is invalidTypeNotPresentException- if any exception type points to a missing typeMalformedParameterizedTypeException- if any exception type points to a type that cannot be instantiated for some reason
-
getDeclaredAnnotations
- Overrides:
getDeclaredAnnotationsin classAccessibleObject
-
getParameterAnnotations
Returns an array of arrays that represent the annotations of the formal parameters of this constructor. If there are no parameters on this constructor, then an empty array is returned. If there are no annotations set, then an array of empty arrays is returned.- Returns:
- an array of arrays of
Annotationinstances
-
isVarArgs
public boolean isVarArgs()Indicates whether or not this constructor takes a variable number of arguments.- Returns:
trueif a vararg is declare, otherwisefalse
-
isSynthetic
public boolean isSynthetic()Indicates whether or not this constructor is synthetic (artificially introduced by the compiler).- Specified by:
isSyntheticin interfaceMember- Returns:
trueif this constructor is synthetic,falseotherwise
-
equals
Indicates whether or not the specifiedobjectis equal to this constructor. To be equal, the specified object must be an instance ofConstructorwith the same declaring class and parameter types as this constructor.- Overrides:
equalsin classObject- Parameters:
object- the object to compare- Returns:
trueif the specified object is equal to this constructor,falseotherwise- See Also:
hashCode()
-
getDeclaringClass
Returns the class that declares this constructor.- Specified by:
getDeclaringClassin interfaceMember- Returns:
- the declaring class
-
getExceptionTypes
Returns the exception types as an array ofClassinstances. If this constructor has no declared exceptions, an empty array will be returned.- Returns:
- the declared exception classes
-
getModifiers
public int getModifiers()Returns the modifiers for this constructor. TheModifierclass should be used to decode the result.- Specified by:
getModifiersin interfaceMember- Returns:
- the modifiers for this constructor
- See Also:
Modifier
-
getName
Returns the name of this constructor. -
getParameterTypes
Returns an array of theClassobjects associated with the parameter types of this constructor. If the constructor was declared with no parameters, an empty array will be returned.- Returns:
- the parameter types
-
hashCode
public int hashCode()Returns an integer hash code for this constructor. Constructors which are equal return the same value for this method. The hash code for a Constructor is the hash code of the name of the declaring class.- Overrides:
hashCodein classObject- Returns:
- the hash code
- See Also:
equals(java.lang.Object)
-
newInstance
public T newInstance(Object... args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetExceptionReturns a new instance of the declaring class, initialized by dynamically invoking the constructor represented by thisConstructorobject. This reproduces the effect ofnew declaringClass(arg1, arg2, ... , argN)This method performs the following:- A new instance of the declaring class is created. If the declaring class cannot be instantiated (i.e. abstract class, an interface, an array type, or a primitive type) then an InstantiationException is thrown.
- If this Constructor object is enforcing access control (see
AccessibleObject) and this constructor is not accessible from the current context, an IllegalAccessException is thrown. - If the number of arguments passed and the number of parameters do not match, an IllegalArgumentException is thrown.
- For each argument passed:
- If the corresponding parameter type is a primitive type, the argument is unboxed. If the unboxing fails, an IllegalArgumentException is thrown.
- If the resulting argument cannot be converted to the parameter type via a widening conversion, an IllegalArgumentException is thrown.
- The constructor represented by this
Constructorobject is then invoked. If an exception is thrown during the invocation, it is caught and wrapped in an InvocationTargetException. This exception is then thrown. If the invocation completes normally, the newly initialized object is returned.
- Parameters:
args- the arguments to the constructor- Returns:
- the new, initialized, object
- Throws:
InstantiationException- if the class cannot be instantiatedIllegalAccessException- if this constructor is not accessibleIllegalArgumentException- if an incorrect number of arguments are passed, or an argument could not be converted by a widening conversionInvocationTargetException- if an exception was thrown by the invoked constructor- See Also:
AccessibleObject
-
toString
Returns a string containing a concise, human-readable description of this constructor. The format of the string is:- modifiers (if any)
- declaring class name
- '('
- parameter types, separated by ',' (if any)
- ')'
- 'throws' plus exception types, separated by ',' (if any)
public String(byte[],String) throws UnsupportedEncodingException
-