March 2005
Beginner to intermediate
1254 pages
104h 21m
English
The
java.lang.Class
class represents data
types in Java and, along with the classes in the
java.lang.reflect package, gives Java programs the
capability of introspection (or self-reflection); a Java class can
look at itself, or any other class, and determine its superclass,
what methods it defines, and so on.
You can obtain a Class object in Java in several
ways:
// Obtain the Class of an arbitrary object o Class c = o.getClass(); // Obtain a Class object for primitive types with various predefined constants c = Void.TYPE; // The special "no-return-value" type c = Byte.TYPE; // Class object that represents a byte c = Integer.TYPE; // Class object that represents an int c = Double.TYPE; // etc; see also Short, Character, Long, Float // Express a class literal as a type name followed by ".class" c = int.class; // Same as Integer.TYPE c = String.class; // Same as "dummystring".getClass() c = byte[].class; // Type of byte arrays c = Class[][].class; // Type of array of arrays of Class objects
Once you have a Class object, you can perform some
interesting reflective operations with it:
import java.lang.reflect.*; Object o; // Some unknown object to investigate Class c = o.getClass(); // Get its type // If it is an array, figure out its base type while (c.isArray()) c = c.getComponentType(); // If c is not a primitive type, print its class hierarchy if (!c.isPrimitive()) { for(Class s = c; s != null; s = s.getSuperclass()) ...Read now
Unlock full access