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 o)
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(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 o)
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. This ignores different exception clauses, but since you can't create a Method except through the VM, this is just the == relation.
Overrides:
equals in interface Object
Parameters:
o - the object to compare to
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. The Constructor hash code is the hash code of the declaring class's name.
Overrides:
hashCode in interface Object
Returns:
the hash code for the object

newInstance

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

java.lang.reflect.Constructor - reflection of Java constructors Copyright (C) 1998, 2001 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.