| Contents | Prev | Next | Java Core Reflection | 
Instances of the classpackage java.lang;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Constructor;public final class Class extends Object
Class represent Java types in a way that allows them to 
be manipulated by a running Java program. Every array also belongs to a class 
that is reflected as a Class object that is shared by all arrays with the same 
element type and number of dimensions. Finally, the eight primitive Java types 
and void are also represented by unique Class objects.
There are no public constructors for class Class. The Java Virtual Machine 
automatically constructs Class objects when new classes are loaded; such 
objects cannot be created by user programs.
While the class Class properly belongs in the java.lang.reflect package, it 
remains in java.lang for backwards compatibility.
Class is augmented with new methods to:
Class object represents an array type
Class object represents a primitive type
Class are described below.
    public String toString()
Returns a String consisting of the word class, a space, and the fully-qualified 
name of the class if this Class object represents a class (either a declared class 
or an array class). If this Class object represents an interface, then this method 
returns a String consisting of the word interface, followed by a space, 
followed by the fully-qualified name of the interface. If this Class object 
represents a primitive type, then this method returns the name of the primitive 
type. If this Class object represents void, returns the String "void".
This method overrides the toString method of class Object.
Given the fully-qualified name for a class, this method attempts to locate, load, and link the specified class. If it succeeds, returns thepublic static Class forName(String className)throws ClassNotFoundException
Class object representing 
the class. If it fails, the method throws a ClassNotFoundException.
Class objects for array types may be obtained via this method. These Class 
objects are automatically constructed by the Java Virtual Machine.
Class objects that represent the primitive Java types or void cannot be 
obtained via this method.
Creates and initializes a new instance of the class represented by thispublic Object newInstance()throws InstantiationException, IllegalAccessException
Class 
object, provided it represents an instantiable class. This is done exactly as if by 
an instance creation expression with an empty argument list. If evaluation of 
such an instance creation expression would complete abruptly, then the 
invocation of newInstance will complete abruptly for the same reason. 
Otherwise, it returns the newly created and initialized instance.
The method throws an IllegalAccessException if the class or initializer is 
not accessible to the calling class. The method throws an 
InstantiationException if it attempts to instantiate an abstract class or an 
interface, or if it is invoked on a Class object that represents a primitive type 
or void.
    public boolean isInstance(Object obj)
This method is the dynamic equivalent of the Java language instanceof 
operator.  The method returns true if the specified Object argument is non-
null and can be cast to the reference type represented by this Class object 
without raising a ClassCastException.  It returns false otherwise.
If this Class object represents a primitive type or void, returns false.
See The Java Language Specification, section 15.19.2.
    public boolean isAssignableFrom(Class fromClass)
This method tests whether the type represented by the specified Class 
parameter can be converted to the type represented by this Class object via an 
identity conversion or via a widening reference conversion. It returns true if 
so, false otherwise.
If this Class object represents a primitive type, returns true if the specified 
Class parameter is exactly this Class object, false otherwise.
This method throws a NullPointerException if the specified Class parameter 
is null.
See The Java Language Specification, sections 5.1.1, 5.1.4 and 5.2.
    public boolean isInterface()
If this Class object represents an interface type, returns true, otherwise 
returns false.
    public boolean isArray()
If this Class object represents an array type, returns true; otherwise returns 
false.
    public boolean isPrimitive()
If this Class object represents a primitive Java type, returns true; otherwise 
returns false.
There are nine predefined Class objects that represent theprimitive Java types 
and void. These are created by the Java Virtual Machine, and have the same 
names as the primitive types that they represent.  These objects may only be 
accessed via the following public static final variables:
java.lang.Boolean.TYPE java.lang.Character.TYPE java.lang.Byte.TYPE java.lang.Short.TYPE java.lang.Integer.TYPE java.lang.Long.TYPE java.lang.Float.TYPE java.lang.Double.TYPE java.lang.Void.TYPEThese are the only
Class objects for which this method returns true.
    public String getName()
Returns the fully-qualified name of the class (declared or array), interface, 
primitive type or void represented by this Class object, as a String.
    public int getModifiers()
Returns the Java language modifiers for this class or interface, encoded in an 
integer.  The modifiers consist of the Java Virtual Machine's constants for 
public, protected, private, final, and interface; they should be decoded 
using the methods of class Modifier.
The modifier encodings are defined in The Java Virtual Machine Specification, table 4.1.
    public ClassLoader getClassLoader()
Returns the class loader object that loaded this Class.  Returns null if this 
Class was not loaded by a class loader.
    public Class getSuperclass()
If this Class object represents a class other than Object, returns the Class that 
represents the superclass of the class.  Returns null if this Class represents the 
class Object, or if it represents an interface type or a primitive type.
    public Class[] getInterfaces()
Returns an array of Class objects representing the interfaces of the class or 
interface represented by this Class object.  If this Class object represents a 
class, returns an array containing objects representing the interfaces directly 
implemented by the class.  If this Class object represents an interface, returns 
an array containing objects representing the direct superinterfaces of the 
interface.  Returns an array of length 0 if this Class implements no interfaces 
or if it represents a primitive type.
    public Class getComponentType()
If this Class object represents an array type, returns the Class object 
representing the component type of the array; otherwise returns null.
    public Class getDeclaringClass()
If this class or interface is a member of another class, returns the Class object 
representing the class of which it is a member (its declaring class).   Returns a 
null reference if this class or interface is not a member of any other class.
    public Class[] getClasses()
Returns an array containing Class objects representing all the public classes 
and interfaces that are members of the class represented by this Class object.  
This includes public class and interface members inherited from superclasses 
and public class and interface members declared by the class. Returns an 
array of length 0 if the class has no public member classes or interfaces, or if 
this Class object represents a primitive type.
Returns an array containingpublic Field[] getFields()throws SecurityException
Field objects reflecting all the public accessible 
fields of the class or interface represented by this Class object, including those 
declared by the class or interface and those declared by superclasses and 
superinterfaces. (Thus, the array includes the public member fields of the class 
as well as any additional public hidden fields.) Returns an array of length 0 if 
the class or interface has no public accessible fields.
Note that the implicit length field for array types is not reflected by this 
method.  User code should use the methods of class Array to manipulate 
arrays.
The method throws a SecurityException if access to this information is 
denied.
See The Java Language Specification, sections 8.2 and 8.3.
Returns an array containingpublic Method[] getMethods()throws SecurityException
Method objects reflecting all the public member 
methods of the class or interface represented by this Class object, including 
those declared by the class or interface and and those inherited from 
superclasses and superinterfaces.  Returns an array of length 0 if the class or 
interface has no public member methods.
The method throws a SecurityException if access to this information is 
denied.
See The Java Language Specification, sections 8.2 and 8.4.
Returns an array containingpublic Constructor[] getConstructors()throws SecurityException
Constructor objects that reflect all the public 
constructors of the class represented by this Class object.  Returns an array of 
length 0 if the class has no public constructors, or if this Class object 
represents an interface or a primitive type.
The method throws a SecurityException if access to this information is 
denied.
Returns apublic Field getField(String name)throws NoSuchFieldException, SecurityException
Field object that reflects the specified public accessible field of the 
class or interface represented by this Class object.   The name parameter is a 
String specifying the simple name of the desired field.
The field to be reflected is located by searching all the accessible fields of the 
class or interface represented by this Class object for a public field with the 
specified name.
The method throws a NoSuchFieldException if a matching field is not found.
The method throws a SecurityException if access to the underlying field is 
denied.
See The Java Language Specification, sections 8.2 and 8.3.
Returns apublic Method getMethod(String name, Class[] parameterTypes)throws NoSuchMethodException, SecurityException
Method object that reflects the specified public member method of the 
class or interface represented by this Class object.   The name parameter is a 
String specifying the simple name the desired method, and the 
parameterTypes parameter is an array of Class objects that identify the 
method's formal parameter types, in declared order.
The method to reflect is located by searching all the member methods of the 
class or interface represented by this Class object for a public method with 
the specified name and exactly the same formal parameter types.
The method throws a NoSuchMethodException a matching method is not 
found.
The method throws a SecurityException if access to the underlying method 
is denied.
See The Java Language Specification, sections 8.2 and 8.4.
Returns apublic Constructor getConstructor(Class[] parameterTypes)throws NoSuchMethodException, SecurityException
Constructor  object that reflects the specified public constructor of 
the class represented by this Class object.   The parameterTypes parameter is 
an array of Class objects that identify the constructor's formal parameter 
types, in declared order.
The constructor to reflect is located by searching all the constructors of the 
class represented by this Class object for a public constructor with the exactly 
the same formal parameter types.
The method throws a NoSuchMethodException if a matching constructor is not 
found.
The method throws a SecurityException if access to the underlying 
constructor is denied.
Returns an array ofpublic Class[] getDeclaredClasses()throws SecurityException
Class objects reflecting all the classes and interfaces 
declared as members of the class represented by this Class object.  This 
includes public, protected, default (package) access, and private classes and 
interfaces declared by the class, but excludes inherited classes and interfaces.  
Returns an array of length 0 if the class declares no classes or interfaces as 
members, or if this Class object represents a primitive type.
The method throws a SecurityException if access to this information is 
denied.
Returns an array ofpublic Field[] getDeclaredFields()throws SecurityException
Field objects reflecting all the fields declared by the class 
or interface represented by this Class object. This includes public, protected, 
default (package) access, and private fields, but excludes inherited fields. 
Returns an array of length 0 if the class or interface declares no fields, or if this 
Class object represents a primitive type.
The method throws a SecurityException if access to this information is 
denied.
See The Java Language Specification, sections 8.2 and 8.3.
Returns an array ofpublic Method[] getDeclaredMethods()throws SecurityException
Method objects reflecting all the methods declared by the 
class or interface represented by this Class object.  This includes public,      
protected, default (package) access, and private methods, but excludes  
inherited methods.  Returns an array of length 0 if the class or interface 
declares no methods, or if this Class object represents a primitive type.
The method throws a SecurityException if access to this information is 
denied.
See The Java Language Specification, sections 8.2 and 8.4.
Returns an array ofpublic Constructor[] getDeclaredConstructors()throws SecurityException
Constructor objects reflecting all the constructors declared 
by the class represented by this Class object. These are public, protected, 
default (package) access, and private constructors.  Returns an array of length 
0 if this Class object represents an interface or a primitive type.
The method throws a SecurityException if access to this information is 
denied.
Returns apublic Field getDeclaredField(String name)throws NoSuchFieldException, SecurityException
Field object that reflects the specified declared field of the class or 
interface represented by this Class object.   The name parameter is a String 
that specifies the simple name of the desired field.
The method throws a NoSuchFieldException if a field with the specified name 
is not found.
The method throws a SecurityException if access to the underlying field is 
denied.
See The Java Language Specification, sections 8.2 and 8.3.
Returns apublic Method getDeclaredMethod(String name,Class[] parameterTypes)throws NoSuchMethodException, SecurityException
Method object that reflects the specified declared method of the class 
or interface represented by this Class object.   The name parameter is a String 
that specifies the simple name of the desired method, and the parameterTypes 
parameter is an array of Class objects that identify the method's formal 
parameter types, in declared order.
The method throws a NoSuchMethodException if a matching method is not 
found.
The method throws a SecurityException if access to the underlying method 
is denied.
See The Java Language Specification, sections 8.2 and 8.4.
Returns apublic Constructor getDeclaredConstructor(Class[] parameterTypes)throws NoSuchMethodException, SecurityException
Constructor  object that reflects the specified constructor of the class 
or interface represented by this Class object.   The parameterTypes parameter 
is an array of Class objects that identify the constructor's formal parameter 
types, in declared order.
The method throws a NoSuchMethodException if a matching constructor is not 
found.
The method throws a SecurityException if access to the underlying 
constructor is denied.