java.lang
public final class Class<T> extends Object implements Serializable, Type, AnnotatedElement, GenericDeclaration
Arrays with identical type and number of dimensions share the same class.
The array class ClassLoader is the same as the ClassLoader of the element
type of the array (which can be null to indicate the bootstrap classloader).
The name of an array class is [<signature format>;
.
For example,
String[]'s class is [Ljava.lang.String;
. boolean, byte,
short, char, int, long, float and double have the "type name" of
Z,B,S,C,I,J,F,D for the purposes of array classes. If it's a
multidimensioned array, the same principle applies:
int[][][]
== [[[I
.
There is no public constructor - Class objects are obtained only through the virtual machine, as defined in ClassLoaders.
Serial Data: Class objects serialize specially:
TC_CLASS ClassDescriptor
. For more serialization information,
see {@link ObjectStreamClass}.
Since: 1.0
See Also: ClassLoader
Method Summary | |
---|---|
<U> Class<? extends U> | asSubclass(Class<U> klass) Casts this class to represent a subclass of the specified class. |
T | cast(Object obj)
Returns the specified object, cast to this Class ' type.
|
boolean | desiredAssertionStatus()
Returns the desired assertion status of this class, if it were to be
initialized at this moment. |
static Class<?> | forName(String name)
Use the classloader of the current class to load, link, and initialize
a class. |
static Class<?> | forName(String name, boolean initialize, ClassLoader classloader)
Use the specified classloader to load and link a class. |
<A extends Annotation> A | getAnnotation(Class<A> annotationClass)
Returns this class' annotation for the specified annotation type,
or null if no such annotation exists.
|
Annotation[] | getAnnotations()
Returns all annotations associated with this class. |
String | getCanonicalName() Returns the canonical name of this class, as defined by section 6.7 of the Java language specification. |
Class<?>[] | getClasses()
Get all the public member classes and interfaces declared in this
class or inherited from superclasses. |
ClassLoader | getClassLoader()
Get the ClassLoader that loaded this class. |
Class<?> | getComponentType()
If this is an array, get the Class representing the type of array.
|
Constructor<T> | getConstructor(Class<?>... types)
Get a public constructor declared in this class. |
Constructor<?>[] | getConstructors()
Get all the public constructors of this class. |
Annotation[] | getDeclaredAnnotations()
Returns all annotations directly defined by this class. |
Class<?>[] | getDeclaredClasses()
Get all the declared member classes and interfaces in this class, but
not those inherited from superclasses. |
Constructor<T> | getDeclaredConstructor(Class<?>... types)
Get a constructor declared in this class. |
Constructor<?>[] | getDeclaredConstructors()
Get all the declared constructors of this class. |
Field | getDeclaredField(String name)
Get a field declared in this class, where name is its simple name. |
Field[] | getDeclaredFields()
Get all the declared fields in this class, but not those inherited from
superclasses. |
Method | getDeclaredMethod(String methodName, Class<?>... types)
Get a method declared in this class, where name is its simple name. |
Method[] | getDeclaredMethods()
Get all the declared methods in this class, but not those inherited from
superclasses. |
Class<?> | getDeclaringClass()
If this is a nested or inner class, return the class that declared it.
|
Class<?> | getEnclosingClass()
Returns the class which immediately encloses this class. |
Constructor<?> | getEnclosingConstructor()
Returns the constructor which immediately encloses this class. |
Method | getEnclosingMethod()
Returns the method which immediately encloses this class. |
T[] | getEnumConstants()
Returns the enumeration constants of this class, or
null if this class is not an Enum .
|
Field | getField(String fieldName)
Get a public field declared or inherited in this class, where name is
its simple name. |
Field[] | getFields()
Get all the public fields declared in this class or inherited from
superclasses. |
Type[] | getGenericInterfaces()
Returns an array of |
Type | getGenericSuperclass()
Returns a |
Class<?>[] | getInterfaces()
Get the interfaces this class directly implements, in the
order that they were declared. |
Method | getMethod(String methodName, Class<?>... types)
Get a public method declared or inherited in this class, where name is
its simple name. |
Method[] | getMethods()
Get all the public methods declared in this class or inherited from
superclasses. |
int | getModifiers()
Get the modifiers of this class. |
String | getName()
Get the name of this class, separated by dots for package separators.
|
Package | getPackage()
Returns the Package in which this class is defined
Returns null when this information is not available from the
classloader of this class.
|
ProtectionDomain | getProtectionDomain()
Returns the protection domain of this class. |
URL | getResource(String resourceName)
Get a resource URL using this class's package using the
getClassLoader().getResource() method. |
InputStream | getResourceAsStream(String resourceName)
Get a resource using this class's package using the
getClassLoader().getResourceAsStream() method. |
Object[] | getSigners()
Get the signers of this class. |
String | getSimpleName()
Returns the simple name for this class, as used in the source
code. |
Class<? super T> | getSuperclass()
Get the direct superclass of this class. |
TypeVariable<Class<T>>[] | getTypeParameters()
Returns an array of TypeVariable objects that represents
the type variables declared by this class, in declaration order.
|
boolean | isAnnotation()
Returns true if this class is an Annotation .
|
boolean | isAnnotationPresent(Class<? extends Annotation> annotationClass)
Returns true if an annotation for the specified type is associated
with this class. |
boolean | isAnonymousClass()
Returns true if this object represents an anonymous class.
|
boolean | isArray()
Return whether this class is an array type.
|
boolean | isAssignableFrom(Class<?> c)
Discover whether an instance of the Class parameter would be an
instance of this Class as well. |
boolean | isEnum()
Returns true if this class is an Enum .
|
boolean | isInstance(Object o)
Discover whether an Object is an instance of this Class. |
boolean | isInterface()
Check whether this class is an interface or not. |
boolean | isLocalClass()
Returns true if this object represents an local class.
|
boolean | isMemberClass()
Returns true if this object represents an member class.
|
boolean | isPrimitive()
Return whether this class is a primitive type. |
boolean | isSynthetic()
Returns true if this class is a synthetic class, generated by
the compiler.
|
T | newInstance()
Get a new instance of this class by calling the no-argument constructor.
|
String | toString()
Return the human-readable form of this Object. |
Casts this class to represent a subclass of the specified class.
This method is useful for `narrowing' the type of a class so that
the class object, and instances of that class, can match the contract
of a more restrictive method. For example, if this class has the
static type of Class<Object>
, and a dynamic type of
Class<Rectangle>
, then, assuming Shape
is
a superclass of Rectangle
, this method can be used on
this class with the parameter, Class<Shape>
, to retain
the same instance but with the type
Class<? extends Shape>
.
If this class can be converted to an instance which is parameterised
over a subtype of the supplied type, U
, then this method
returns an appropriately cast reference to this object. Otherwise,
a ClassCastException
is thrown.
Parameters: klass the class object, the parameterized type (U
) of
which should be a superclass of the parameterized type of
this instance.
Returns: a reference to this object, appropriately cast.
Throws: ClassCastException if this class can not be converted to one
which represents a subclass of the specified
type, U
.
Since: 1.5
Class
' type.
Parameters: obj the object to cast
Throws: ClassCastException if obj is not an instance of this class
Since: 1.5
Returns: the desired assertion status
Since: 1.4
See Also: ClassLoader ClassLoader ClassLoader
Class.forName(name, true, getClass().getClassLoader())
.
Parameters: name the name of the class to find
Returns: the Class object representing the class
Throws: ClassNotFoundException if the class was not found by the classloader LinkageError if linking the class fails ExceptionInInitializerError if the class loads, but an exception occurs during initialization
Calls classloader.loadclass(name, initialize)
.
Parameters: name the name of the class to find initialize whether or not to initialize the class at this time classloader the classloader to use to find the class; null means to use the bootstrap class loader
Returns: the class object for the given class
Throws: ClassNotFoundException if the class was not found by the
classloader LinkageError if linking the class fails ExceptionInInitializerError if the class loads, but an exception
occurs during initialization SecurityException if the classloader
argument
is null
and the caller does not have the
RuntimePermission("getClassLoader")
permission
Since: 1.2
See Also: ClassLoader
null
if no such annotation exists.
Parameters: annotationClass the type of annotation to look for.
Returns: this class' annotation for the specified type, or
null
if no such annotation exists.
Since: 1.5
Returns: this class' annotations.
Since: 1.5
Returns the canonical name of this class, as defined by section 6.7 of the Java language specification. Each package, top-level class, top-level interface and primitive type has a canonical name. A member class has a canonical name, if its parent class has one. Likewise, an array type has a canonical name, if its component type does. Local or anonymous classes do not have canonical names.
The canonical name for top-level classes, top-level interfaces and primitive types is always the same as the fully-qualified name. For array types, the canonical name is the canonical name of its component type with `[]' appended.
The canonical name of a member class always refers to the place where
the class was defined, and is composed of the canonical name of the
defining class and the simple name of the member class, joined by `.'.
For example, if a Person
class has an inner class,
M
, then both its fully-qualified name and canonical name
is Person.M
. A subclass, Staff
, of
Person
refers to the same inner class by the fully-qualified
name of Staff.M
, but its canonical name is still
Person.M
.
Where no canonical name is present, null
is returned.
Returns: the canonical name of the class, or null
if the
class doesn't have a canonical name.
Since: 1.5
checkMemberAccess(this, Member.PUBLIC)
as well as
checkPackageAccess
both having to succeed.
Returns: all public member classes in this class
Throws: SecurityException if the security check fails
Since: 1.1
RuntimePermission("getClassLoader")
must first succeed. Primitive types and void return null.
Returns: the ClassLoader that loaded this class
Throws: SecurityException if the security check fails
See Also: ClassLoader RuntimePermission
Returns: the array type of this class, or null
Since: 1.1
See Also: Array
checkMemberAccess(this, Member.PUBLIC)
as well as
checkPackageAccess
both having to succeed.
Parameters: types the type of each parameter
Returns: the constructor
Throws: NoSuchMethodException if the constructor does not exist SecurityException if the security check fails
Since: 1.1
See Also: getConstructors
checkMemberAccess(this, Member.PUBLIC)
as well as checkPackageAccess
both having to succeed.
Returns: all public constructors in this class
Throws: SecurityException if the security check fails
Since: 1.1
Returns: the annotations directly defined by this class.
Since: 1.5
checkMemberAccess(this, Member.DECLARED)
as well as
checkPackageAccess
both having to succeed.
Returns: all declared member classes in this class
Throws: SecurityException if the security check fails
Since: 1.1
checkMemberAccess(this, Member.DECLARED)
as well as
checkPackageAccess
both having to succeed.
Parameters: types the type of each parameter
Returns: the constructor
Throws: NoSuchMethodException if the constructor does not exist SecurityException if the security check fails
Since: 1.1
See Also: getDeclaredConstructors
checkMemberAccess(this, Member.DECLARED)
as well as checkPackageAccess
both having to succeed.
Returns: all constructors in this class
Throws: SecurityException if the security check fails
Since: 1.1
checkMemberAccess(this, Member.DECLARED)
as well as checkPackageAccess
both having to succeed.
Parameters: name the name of the field
Returns: the field
Throws: NoSuchFieldException if the field does not exist SecurityException if the security check fails
Since: 1.1
See Also: getDeclaredFields
checkMemberAccess(this, Member.DECLARED)
as well as
checkPackageAccess
both having to succeed.
Returns: all declared fields in this class
Throws: SecurityException if the security check fails
Since: 1.1
checkMemberAccess(this, Member.DECLARED)
as well as
checkPackageAccess
both having to succeed.
Parameters: methodName the name of the method types the type of each parameter
Returns: the method
Throws: NoSuchMethodException if the method does not exist SecurityException if the security check fails
Since: 1.1
See Also: getDeclaredMethods
checkMemberAccess(this, Member.DECLARED)
as well as
checkPackageAccess
both having to succeed.
Returns: all declared methods in this class
Throws: SecurityException if the security check fails
Since: 1.1
Returns: the declaring class of this class
Since: 1.1
null
.
Returns: the immediate enclosing class, or null
if this is
a top-level class.
Since: 1.5
null
is returned.
Returns: the immediate enclosing constructor if this class is
declared within a constructor. Otherwise, null
is returned.
Since: 1.5
null
is returned.
Returns: the immediate enclosing method if this class is
declared within a method. Otherwise, null
is returned.
Since: 1.5
Enum
.
Returns: an array of Enum
constants
associated with this class, or null if this
class is not an enum
.
Since: 1.5
checkMemberAccess(this, Member.PUBLIC)
as well as
checkPackageAccess
both having to succeed.
Parameters: fieldName the name of the field
Returns: the field
Throws: NoSuchFieldException if the field does not exist SecurityException if the security check fails
Since: 1.1
See Also: getFields
checkMemberAccess(this, Member.PUBLIC)
as well as
checkPackageAccess
both having to succeed.
Returns: all public fields in this class
Throws: SecurityException if the security check fails
Since: 1.1
Returns an array of Type
objects which represent the
interfaces directly implemented by this class or extended by this
interface.
If one of the superinterfaces is a parameterized type, then the
object returned for this interface reflects the actual type
parameters used in the source code. Type parameters are created
using the semantics specified by the ParameterizedType
interface, and only if an instance has not already been created.
The order of the interfaces in the array matches the order in which
the interfaces are declared. For classes which represent an array,
an array of two interfaces, Cloneable
and
Serializable
, is always returned, with the objects in
that order. A class representing a primitive type or void always
returns an array of zero size.
Returns: an array of interfaces implemented or extended by this class.
Throws: GenericSignatureFormatError if the generic signature of one of the interfaces does not comply with that specified by the Java Virtual Machine specification, 3rd edition. TypeNotPresentException if any of the superinterfaces refers to a non-existant type. MalformedParameterizedTypeException if any of the interfaces refer to a parameterized type that can not be instantiated for some reason.
Since: 1.5
See Also: ParameterizedType
Returns a Type
object representing the direct superclass,
whether class, interface, primitive type or void, of this class.
If this class is an array class, then a class instance representing
the Object
class is returned. If this class is primitive,
an interface, or a representation of either the Object
class or void, then null
is returned.
If the superclass is a parameterized type, then the
object returned for this interface reflects the actual type
parameters used in the source code. Type parameters are created
using the semantics specified by the ParameterizedType
interface, and only if an instance has not already been created.
Returns: the superclass of this class.
Throws: GenericSignatureFormatError if the generic signature of the class does not comply with that specified by the Java Virtual Machine specification, 3rd edition. TypeNotPresentException if the superclass refers to a non-existant type. MalformedParameterizedTypeException if the superclass refers to a parameterized type that can not be instantiated for some reason.
Since: 1.5
See Also: ParameterizedType
Returns: the interfaces this class directly implements
checkMemberAccess(this, Member.PUBLIC)
as well as
checkPackageAccess
both having to succeed.
Parameters: methodName the name of the method types the type of each parameter
Returns: the method
Throws: NoSuchMethodException if the method does not exist SecurityException if the security check fails
Since: 1.1
See Also: getMethods
checkMemberAccess(this, Member.PUBLIC)
as well as
checkPackageAccess
both having to succeed.
Returns: all public methods in this class
Throws: SecurityException if the security check fails
Since: 1.1
Returns: the modifiers of this class
Since: 1.1
See Also: Modifier
Byte.TYPE.getName()
returns "byte".
Arrays are specially encoded as shown on this table.
array type [element type (note that the element type is encoded per this table) boolean Z byte B char C short S int I long J float F double D void V class or interface, alone: <dotted name> class or interface, as element type: L<dotted name>;
Returns: the name of this class
Package
in which this class is defined
Returns null when this information is not available from the
classloader of this class.
Returns: the package for this class, if it is available
Since: 1.2
null
code source
and all permissions. A security check may be performed, with
RuntimePermission("getProtectionDomain")
.
Returns: the protection domain
Throws: SecurityException if the security manager exists and the caller
does not have RuntimePermission("getProtectionDomain")
.
Since: 1.2
See Also: RuntimePermission
If the name you supply is absolute (it starts with a /
),
then the leading /
is removed and it is passed on to
getResource(). If it is relative, the package name is prepended, and
.
's are replaced with /
.
The URL returned is system- and classloader-dependent, and could change across implementations.
Parameters: resourceName the name of the resource, generally a path
Returns: the URL to the resource
Throws: NullPointerException if name is null
Since: 1.1
If the name you supply is absolute (it starts with a /
),
then the leading /
is removed and it is passed on to
getResource(). If it is relative, the package name is prepended, and
.
's are replaced with /
.
The URL returned is system- and classloader-dependent, and could change across implementations.
Parameters: resourceName the name of the resource, generally a path
Returns: an InputStream with the contents of the resource in it, or null
Throws: NullPointerException if name is null
Since: 1.1
Returns: the signers of this class
Since: 1.1
getName()
which follows the last ".". Anonymous
classes have no name, and so the result of calling this method is
"". The simple name of an array consists of the simple name of
its component type, followed by "[]". Thus, an array with the
component type of an anonymous class has a simple name of simply
"[]".
Returns: the simple name for this class.
Since: 1.5
Returns: the direct superclass of this class
TypeVariable
objects that represents
the type variables declared by this class, in declaration order.
An array of size zero is returned if this class has no type
variables.
Returns: the type variables associated with this class.
Throws: GenericSignatureFormatError if the generic signature does not conform to the format specified in the Virtual Machine specification, version 3.
Since: 1.5
Annotation
.
Returns: true if this is an annotation class.
Since: 1.5
Parameters: annotationClass the type of annotation to look for.
Returns: true if an annotation exists for the specified type.
Since: 1.5
Returns: true if this object represents an anonymous class.
Since: 1.5
Returns: whether this class is an array type
Since: 1.1
isInstance(c.newInstance())
or even
c.newInstance() instanceof (this class)
. While this
checks widening conversions for objects, it must be exact for primitive
types.
Parameters: c the class to check
Returns: whether an instance of c would be an instance of this class as well
Throws: NullPointerException if c is null
Since: 1.1
Enum
.
Returns: true if this is an enumeration class.
Since: 1.5
o instanceof (this class)
.
Parameters: o the Object to check
Returns: whether o is an instance of this class
Since: 1.1
Returns: whether this class is an interface or not
Returns: true if this object represents an local class.
Since: 1.5
Returns: true if this object represents an member class.
Since: 1.5
Returns: whether this class is a primitive type
Since: 1.1
Returns: true if this is a synthetic class.
Since: 1.5
checkMemberAccess(this, Member.PUBLIC)
as well as checkPackageAccess
both having to succeed.
Returns: a new instance of this class
Throws: InstantiationException if there is not a no-arg constructor for this class, including interfaces, abstract classes, arrays, primitive types, and void; or if an exception occurred during the constructor IllegalAccessException if you are not allowed to access the no-arg constructor because of scoping reasons SecurityException if the security check fails ExceptionInInitializerError if class initialization caused by this call fails with an exception
getName()
,
for primitive types and void it is just getName()
.
Returns: the human-readable form of this Object