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 typeClass
object represents a primitive typeClass
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.