java.lang.reflect

Class Constructor

Implemented Interfaces:
Member

public final class Constructor
extends AccessibleObject
implements Member

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 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, java.lang.Class.getConstructor(Object[]), java.lang.Class.getDeclaredConstructor(Object[]), Class.getConstructors(), Class.getDeclaredConstructors()

Fields inherited from interface java.lang.reflect.Member

DECLARED, PUBLIC

Method Summary

boolean
equals(Object obj)
Compare two objects to see if they are semantically equivalent.
Class
getDeclaringClass()
Gets the class that declared this constructor.
Class[]
getExceptionTypes()
Get the exception types this constructor says it throws, in no particular order.
int
getModifiers()
Gets the modifiers this constructor uses.
String
getName()
Gets the name of this constructor (the non-qualified name of the class it was declared in).
Class[]
getParameterTypes()
Get the parameter list for this constructor, in declaration order.
int
hashCode()
Get the hash code for the Constructor.
Object
newInstance(Object[] args)
Create a new instance by invoking the constructor.
String
toString()
Get a String representation of the Constructor.

Methods inherited from class java.lang.reflect.AccessibleObject

isAccessible, setAccessible, setAccessible

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Details

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.
Overrides:
equals in interface Object
Parameters:
Returns:
true if they are equal; false if not.

getDeclaringClass

public Class getDeclaringClass()
Gets the class that declared this constructor.
Specified by:
getDeclaringClass in interface Member
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

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.
Specified by:
getModifiers in interface Member
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).
Specified by:
getName in interface Member
Returns:
the name of this constructor

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

hashCode

public int hashCode()
Get the hash code for the Constructor.
Overrides:
hashCode in interface Object
Returns:
the hash code for the object

newInstance

public Object newInstance(Object[] args)
            throws InstantiationException,
                   IllegalAccessException,
                   IllegalArgumentException,
                   InvocationTargetException
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

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
Overrides:
toString in interface Object
Returns:
the String representation of the Constructor

Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details.