java.lang
Class Class
java.lang.Object
java.lang.Class
public final class Class
- extends Object
Instances of the class Class represent classes and interfaces in a running Java application.
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.
Class has no public constructor. Instead Class objects are constructed automatically by the
Java Virtual Machine as classes are loaded.
The following example uses a Class object to print the class name of an object:
void printClassName(Object obj) {
System.out.println("The class of " + obj +
" is " + obj.getClass().getName());
}
|
Method Summary |
static Class |
forName(String className)
Returns the Class object associated with the class with the given string name. |
String |
getName()
Returns the fully-qualified name of the entity (class, interface, array class, primitive type, or void)
represented by this Class object, as a String. |
InputStream |
getResourceAsStream(String name)
Finds a resource with a given name in the application's JAR file. |
boolean |
isArray()
Determines if this Class object represents an array class. |
boolean |
isAssignableFrom(Class cls)
Determines if the class or interface represented by this Class object is
either the same as, or is a superclass or superinterface of, the class
or interface represented by the specified Class parameter. |
boolean |
isInstance(Object obj)
Determines if the specified Object is assignment-compatible with the
object represented by this Class. |
boolean |
isInterface()
Determines if the specified Class object represents an interface type. |
Object |
newInstance()
Creates a new instance of a class. |
String |
toString()
Converts the object to a string. |
forName
public static Class forName(String className)
throws ClassNotFoundException
- Returns the Class object associated with the class with the given string name.
Given the fully-qualified name for a class or interface, this method attempts to locate,
load and link the class.
For example, the following code fragment returns the runtime Class descriptor for the
class named java.lang.Thread:
Class t = Class.forName("java.lang.Thread")
- Throws:
ClassNotFoundException
getName
public String getName()
- Returns the fully-qualified name of the entity (class, interface, array class, primitive type, or void)
represented by this Class object, as a String.
If this Class object represents a class of arrays, then the internal form of the name consists of
the name of the element type in Java signature format, preceded by one or more "[" characters
representing the depth of array nesting. Thus:
(new Object[3]).getClass().getName()
returns "[Ljava.lang.Object;" and:
(new int[3][4][5][6][7][8][9]).getClass().getName()
returns "[[[[[[[I". The encoding of element type names is as follows:
B byte
C char
D double
F float
I int
J long
Lclassname; class or interface
S short
Z boolean
The class or interface name classname is given in fully qualified form as shown in the example above.
getResourceAsStream
public InputStream getResourceAsStream(String name)
- Finds a resource with a given name in the application's JAR file. This
method returns null if no resource with this name is found in the
application's JAR file.
The resource names can be represented in two different formats: absolute or
relative.
Absolute format: /packagePathName/resourceName
Relative format: resourceName
In the absolute format, the programmer provides a fully qualified name that
includes both the full path and the name of the resource inside the JAR
file. In the path names, the character "/" is used as the separator.
In the relative format, the programmer provides only the name of the actual
resource. Relative names are converted to absolute names by the system by
prepending the resource name with the fully qualified package name of class
upon which the getResourceAsStream method was called.
isArray
public boolean isArray()
- Determines if this Class object represents an array class.
isAssignableFrom
public boolean isAssignableFrom(Class cls)
- Determines if the class or interface represented by this Class object is
either the same as, or is a superclass or superinterface of, the class
or interface represented by the specified Class parameter. It returns
true if so; otherwise it returns false. If this Class object represents
a primitive type, this method returns true if the specified Class
parameter is exactly this Class object; otherwise it returns false.
Specifically, 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. See The Java Language Specification, sections 5.1.1 and
5.1.4 , for details.
isInstance
public boolean isInstance(Object obj)
- Determines if the specified Object is assignment-compatible with the
object represented by this Class. 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.
Specifically, if this Class object represents a declared class, this
method returns true if the specified Object argument is an instance of
the represented class (or of any of its subclasses); it returns false
otherwise. If this Class object represents an array class, this method
returns true if the specified Object argument can be converted to an
object of the array class by an identity conversion or by a widening
reference conversion; it returns false otherwise. If this Class object
represents an interface, this method returns true if the class or any
superclass of the specified Object argument implements this interface;
it returns false otherwise. If this Class object represents a primitive
type, this method returns false.
isInterface
public boolean isInterface()
- Determines if the specified Class object represents an interface type.
newInstance
public Object newInstance()
throws InstantiationException,
IllegalAccessException
- Creates a new instance of a class.
- Throws:
InstantiationException
IllegalAccessException
toString
public String toString()
- Converts the object to a string. The string representation is the string
"class" or "interface", followed by a space, and then by the fully
qualified name of the class in the format returned by getName. If this
Class object represents a primitive type, this method returns the name
of the primitive type. If this Class object represents void this method
returns "void".
- Overrides:
toString in class Object