| 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.TYPE
These 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.