java.lang.Object | |
↳ | java.lang.Class<T> |
The in-memory representation of a Java class. This representation serves as
the starting point for querying class-related information, a process usually
called "reflection". There are basically three types of Class
instances: those representing real classes and interfaces, those representing
primitive types, and those representing array classes.
These represent an ordinary class or interface as found in the class
hierarchy. The name associated with these Class
instances is simply
the fully qualified class name of the class or interface that it represents.
In addition to this human-readable name, each class is also associated by a
so-called descriptor, which is the letter "L", followed by the
class name and a semicolon (";"). The descriptor is what the runtime system
uses internally for identifying the class (for example in a DEX file).
These represent the standard Java primitive types and hence share their
names (for example "int" for the int
primitive type). Although it is
not possible to create new instances based on these Class
instances,
they are still useful for providing reflection information, and as the
component type of array classes. There is one Class
instance for each
primitive type, and their descriptors are:
B
representing the byte
primitive typeS
representing the short
primitive typeI
representing the int
primitive typeJ
representing the long
primitive typeF
representing the float
primitive typeD
representing the double
primitive typeC
representing the char
primitive typeZ
representing the boolean
primitive typeV
representing void function return values
These represent the classes of Java arrays. There is one such Class
instance per combination of array leaf component type and arity (number of
dimensions). In this case, the name associated with the Class
consists of one or more left square brackets (one per dimension in the array)
followed by the descriptor of the class representing the leaf component type,
which can be either an object type or a primitive type. The descriptor of a
Class
representing an array type is the same as its name. Examples
of array class descriptors are:
[I
representing the int[]
type[Ljava/lang/String;
representing the String[]
type[[[C
representing the char[][][]
type (three dimensions!)Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Casts this
Class to represent a subclass of the given class.
| |||||||||||
Casts the given object to the type represented by this
Class .
| |||||||||||
Returns the assertion status for the class represented by this
Class .
| |||||||||||
Returns a
Class object which represents the class with
the given name.
| |||||||||||
Returns a
Class object which represents the class with
the given name.
| |||||||||||
Returns an array containing all the annotations of this class.
| |||||||||||
Returns the canonical name of this class.
| |||||||||||
Returns the class loader which was used to load the class represented by
this
Class .
| |||||||||||
Returns an array containing
Class objects for all
public classes, interfaces, enums and annotations that are
members of this class and its superclasses.
| |||||||||||
Returns a
Class object which represents the component type if
this class represents an array type.
| |||||||||||
Returns a
Constructor object which represents the public
constructor matching the given parameter types.
| |||||||||||
Returns an array containing
Constructor objects for all public
constructors for this Class .
| |||||||||||
Returns the annotations that are directly defined on the class
represented by this
Class .
| |||||||||||
Returns an array containing
Class objects for all classes,
interfaces, enums and annotations that are members of this class.
| |||||||||||
Returns a
Constructor object which represents the constructor
matching the specified parameter types that is declared by the class
represented by this Class .
| |||||||||||
Returns an array containing
Constructor objects for all
constructors declared in the class represented by this Class .
| |||||||||||
Returns a
Field object for the field with the given name
which is declared in the class represented by this Class .
| |||||||||||
Returns an array containing
Field objects for all fields declared
in the class represented by this Class .
| |||||||||||
Returns a
Method object which represents the method matching the
specified name and parameter types that is declared by the class
represented by this Class .
| |||||||||||
Returns an array containing
Method objects for all methods
declared in the class represented by this Class .
| |||||||||||
Returns the class that this class is a member of, or
null if this
class is a top-level class, a primitive, an array, or defined within a
method or constructor.
| |||||||||||
Returns the class enclosing this class.
| |||||||||||
Returns the enclosing
Constructor of this Class , if it is an
anonymous or local/automatic class; otherwise null .
| |||||||||||
Returns the enclosing
Method of this Class , if it is an
anonymous or local/automatic class; otherwise null .
| |||||||||||
Returns the
enum constants associated with this Class .
| |||||||||||
Returns a
Field object which represents the public field with the
given name.
| |||||||||||
Returns an array containing
Field objects for all public fields
for the class C represented by this Class .
| |||||||||||
Returns the
Type s of the interfaces that this Class directly
implements.
| |||||||||||
Returns the
Type that represents the superclass of this class .
| |||||||||||
Returns an array of
Class objects that match the interfaces
in the implements declaration of the class represented
by this Class .
| |||||||||||
Returns a
Method object which represents the public method with
the specified name and parameter types.
| |||||||||||
Returns an array containing
Method objects for all public methods
for the class C represented by this Class .
| |||||||||||
Returns an integer that represents the modifiers of the class represented
by this
Class .
| |||||||||||
Returns the name of the class represented by this
Class .
| |||||||||||
Returns the
Package of which the class represented by this
Class is a member.
| |||||||||||
Returns
null .
| |||||||||||
Returns the URL of the given resource, or
null if the resource is not found.
| |||||||||||
Returns a read-only stream for the contents of the given resource, or
null if the
resource is not found.
| |||||||||||
Returns
null .
| |||||||||||
Returns the simple name of the class represented by this
Class as
defined in the source code.
| |||||||||||
Returns the
Class object which represents the superclass of the
class represented by this Class .
| |||||||||||
Returns an array containing
TypeVariable objects for type
variables declared by the generic class represented by this Class .
| |||||||||||
Tests whether this
Class represents an annotation class.
| |||||||||||
Indicates whether or not this element has an annotation with the
specified annotation type (including inherited annotations).
| |||||||||||
Tests whether the class represented by this
Class is
anonymous.
| |||||||||||
Tests whether the class represented by this
Class is an array class.
| |||||||||||
Can
c be assigned to this class? For example, String can be assigned to Object
(by an upcast), however, an Object cannot be assigned to a String as a potentially exception
throwing downcast would be necessary.
| |||||||||||
Tests whether the class represented by this
Class is an
enum .
| |||||||||||
Tests whether the given object can be cast to the class
represented by this
Class .
| |||||||||||
Tests whether this
Class represents an interface.
| |||||||||||
Tests whether the class represented by this
Class is defined
locally.
| |||||||||||
Tests whether the class represented by this
Class is a member
class.
| |||||||||||
Tests whether this
Class represents a primitive type.
| |||||||||||
Tests whether this
Class represents a synthetic type.
| |||||||||||
Returns a new instance of the class represented by this
Class ,
created by invoking the default (that is, zero-argument) constructor.
| |||||||||||
Returns a string containing a concise, human-readable description of this
object.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
From interface
java.lang.reflect.AnnotatedElement
| |||||||||||
From interface
java.lang.reflect.GenericDeclaration
|
Casts this Class
to represent a subclass of the given class.
If successful, this Class
is returned; otherwise a ClassCastException
is thrown.
ClassCastException | if this Class cannot be cast to the given type.
|
---|
Casts the given object to the type represented by this Class
.
If the object is null
then the result is also null
.
ClassCastException | if the object cannot be cast to the given type. |
---|
Returns the assertion status for the class represented by this Class
. Assertion is enabled / disabled based on the class loader,
package or class default at runtime.
Returns a Class
object which represents the class with
the given name. The name should be the name of a non-primitive
class, as described in the class definition
.
Primitive types can not be found using this method; use int.class
or Integer.TYPE
instead.
If the class has not yet been loaded, it is loaded first, using the given class loader.
If the class has not yet been initialized and shouldInitialize
is true,
the class will be initialized.
If the provided classLoader
is null
, the bootstrap
class loader will be used to load the class.
ClassNotFoundException | if the requested class cannot be found. |
---|---|
LinkageError | if an error occurs during linkage |
ExceptionInInitializerError | if an exception occurs during static initialization of a class. |
Returns a Class
object which represents the class with
the given name. The name should be the name of a non-primitive
class, as described in the class definition
.
Primitive types can not be found using this method; use int.class
or Integer.TYPE
instead.
If the class has not yet been loaded, it is loaded and initialized first. This is done through either the class loader of the calling class or one of its parent class loaders. It is possible that a static initializer is run as a result of this call.
ClassNotFoundException | if the requested class cannot be found. |
---|---|
LinkageError | if an error occurs during linkage |
ExceptionInInitializerError | if an exception occurs during static initialization of a class. |
Returns an array containing all the annotations of this class. If there are no annotations then an empty array is returned.
Returns the canonical name of this class. If this class does not have a
canonical name as defined in the Java Language Specification, then the
method returns null
.
Returns the class loader which was used to load the class represented by
this Class
. Implementations are free to return null
for
classes that were loaded by the bootstrap class loader. The Android
reference implementation, though, always returns a reference to an actual
class loader.
Returns an array containing Class
objects for all
public classes, interfaces, enums and annotations that are
members of this class and its superclasses. This does not
include classes of implemented interfaces. If there are no
such class members or if this object represents a primitive
type then an array of length 0 is returned.
Returns a Class
object which represents the component type if
this class represents an array type. Returns null
if this class
does not represent an array type. The component type of an array type is
the type of the elements of the array.
Returns a Constructor
object which represents the public
constructor matching the given parameter types.
(Class[]) null
is equivalent to the empty array.
NoSuchMethodException | if the constructor cannot be found. |
---|
Returns an array containing Constructor
objects for all public
constructors for this Class
. If there
are no public constructors or if this Class
represents an array
class, a primitive type or void then an empty array is returned.
Returns the annotations that are directly defined on the class
represented by this Class
. Annotations that are inherited are not
included in the result. If there are no annotations at all, an empty
array is returned.
Returns an array containing Class
objects for all classes,
interfaces, enums and annotations that are members of this class.
Returns a Constructor
object which represents the constructor
matching the specified parameter types that is declared by the class
represented by this Class
.
(Class[]) null
is equivalent to the empty array.
NoSuchMethodException | if the requested constructor cannot be found. |
---|
Returns an array containing Constructor
objects for all
constructors declared in the class represented by this Class
. If
there are no constructors or if this Class
represents an array
class, a primitive type or void then an empty array is returned.
Returns a Field
object for the field with the given name
which is declared in the class represented by this Class
.
NoSuchFieldException | if the requested field can not be found. |
---|
Returns an array containing Field
objects for all fields declared
in the class represented by this Class
. If there are no fields or
if this Class
represents an array class, a primitive type or void
then an empty array is returned.
Returns a Method
object which represents the method matching the
specified name and parameter types that is declared by the class
represented by this Class
.
name | the requested method's name. |
---|---|
parameterTypes | the parameter types of the requested method.
(Class[]) null is equivalent to the empty array. |
name
and parameterTypes
.NoSuchMethodException | if the requested constructor cannot be found. |
---|---|
NullPointerException | if name is null . |
Returns an array containing Method
objects for all methods
declared in the class represented by this Class
. If there are no
methods or if this Class
represents an array class, a primitive
type or void then an empty array is returned.
Returns the class that this class is a member of, or null
if this
class is a top-level class, a primitive, an array, or defined within a
method or constructor.
Returns the class enclosing this class. For most classes this is the same
as the declaring class
. For classes defined
within a method or constructor (typically anonymous inner classes), this
is the declaring class of that member.
Returns the enclosing Constructor
of this Class
, if it is an
anonymous or local/automatic class; otherwise null
.
Returns the enclosing Method
of this Class
, if it is an
anonymous or local/automatic class; otherwise null
.
Returns the enum
constants associated with this Class
.
Returns null
if this Class
does not represent an enum
type.
Returns a Field
object which represents the public field with the
given name. This method first searches the class C represented by
this Class
, then the interfaces implemented by C and finally the
superclasses of C.
NoSuchFieldException | if the field cannot be found. |
---|
Returns an array containing Field
objects for all public fields
for the class C represented by this Class
. Fields may be declared
in C, the interfaces it implements or in the superclasses of C. The
elements in the returned array are in no particular order.
If there are no public fields or if this class represents an array class,
a primitive type or void
then an empty array is returned.
Returns the Type
s of the interfaces that this Class
directly
implements. If the Class
represents a primitive type or void
then an empty array is returned.
Returns the Type
that represents the superclass of this class
.
Returns an array of Class
objects that match the interfaces
in the implements
declaration of the class represented
by this Class
. The order of the elements in the array is
identical to the order in the original class declaration. If the class
does not implement any interfaces, an empty array is returned.
This method only returns directly-implemented interfaces, and does not include interfaces implemented by superclasses or superinterfaces of any implemented interfaces.
Returns a Method
object which represents the public method with
the specified name and parameter types.
(Class[]) null
is equivalent to the empty array.
This method first searches the
class C represented by this Class
, then the superclasses of C and
finally the interfaces implemented by C and finally the superclasses of C
for a method with matching name.
NoSuchMethodException | if the method cannot be found. |
---|
Returns an array containing Method
objects for all public methods
for the class C represented by this Class
. Methods may be
declared in C, the interfaces it implements or in the superclasses of C.
The elements in the returned array are in no particular order.
If there are no public methods or if this Class
represents a
primitive type or void
then an empty array is returned.
Returns an integer that represents the modifiers of the class represented
by this Class
. The returned value is a combination of bits
defined by constants in the Modifier
class.
Returns the name of the class represented by this Class
. For a
description of the format which is used, see the class definition of
Class
.
Returns the Package
of which the class represented by this
Class
is a member. Returns null
if no Package
object was created by the class loader of the class.
Returns the URL of the given resource, or null
if the resource is not found.
The mapping between the resource name and the URL is managed by the class' class loader.
Returns a read-only stream for the contents of the given resource, or null
if the
resource is not found.
The mapping between the resource name and the stream is managed by the class' class loader.
Returns null
. (On Android, a ClassLoader
can load classes from multiple dex
files. All classes from any given dex file will have the same signers, but different dex
files may have different signers. This does not fit well with the original
ClassLoader
-based model of getSigners
.)
Returns the simple name of the class represented by this Class
as
defined in the source code. If there is no name (that is, the class is
anonymous) then an empty string is returned. If the receiver is an array
then the name of the underlying type with square braces appended (for
example "Integer[]"
) is returned.
Class
.
Returns the Class
object which represents the superclass of the
class represented by this Class
. If this Class
represents
the Object
class, a primitive type, an interface or void then the
method returns null
. If this Class
represents an array
class then the Object
class is returned.
Returns an array containing TypeVariable
objects for type
variables declared by the generic class represented by this Class
. Returns an empty array if the class is not generic.
Tests whether this Class
represents an annotation class.
Indicates whether or not this element has an annotation with the specified annotation type (including inherited annotations).
annotationType | the type of the annotation to search for |
---|
true
if the annotation exists, false
otherwiseTests whether the class represented by this Class
is
anonymous.
Tests whether the class represented by this Class
is an array class.
Can c
be assigned to this class? For example, String can be assigned to Object
(by an upcast), however, an Object cannot be assigned to a String as a potentially exception
throwing downcast would be necessary. Similarly for interfaces, a class that implements (or
an interface that extends) another can be assigned to its parent, but not vice-versa. All
Classes may assign to themselves. Classes for primitive types may not assign to each other.
c | the class to check. |
---|
true
if c
can be assigned to the class
represented by this Class
; false
otherwise.NullPointerException | if c is null .
|
---|
Tests whether the class represented by this Class
is an
enum
.
Tests whether the given object can be cast to the class
represented by this Class
. This is the runtime version of the
instanceof
operator.
true
if object
can be cast to the type
represented by this Class
; false
if object
is null
or cannot be cast.
Tests whether this Class
represents an interface.
Tests whether the class represented by this Class
is defined
locally.
Tests whether the class represented by this Class
is a member
class.
Tests whether this Class
represents a primitive type.
Tests whether this Class
represents a synthetic type.
Returns a new instance of the class represented by this Class
,
created by invoking the default (that is, zero-argument) constructor. If
there is no such constructor, or if the creation fails (either because of
a lack of available memory or because an exception is thrown by the
constructor), an InstantiationException
is thrown. If the default
constructor exists but is not accessible from the context where this
method is invoked, an IllegalAccessException
is thrown.
IllegalAccessException | if the default constructor is not visible. |
---|---|
InstantiationException | if the instance cannot be created. |
Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:
getClass().getName() + '@' + Integer.toHexString(hashCode())
See Writing a useful
toString
method
if you intend implementing your own toString
method.