是的,
Class对象是某个“类”的类描述符。
从API中:
此类的实例表示正在运行的Java应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组还属于一个反映为Class对象的类,该类对象由元素类型和维数相同的所有数组共享。原始Java类型(布尔型,字节型,字符型,短型,整型,长型,浮点型和双精度型)以及关键字void也都表示为
Class对象。
这是一个简单使用
Class方法来示例性地描述类型的示例:
static void describe(Class<?> clazz, String pad, String leadin) { if (clazz == null) return; String type = clazz.isInterface() ? "interface" : clazz.isArray() ? "array" : clazz.isPrimitive() ? "primitive" : clazz.isEnum() ? "enum" : "class"; System.out.printf("%s%s%s %s ( %s )%n", pad, leadin, type, clazz.getSimpleName(), clazz.getName()); for (Class<?> interfaze : clazz.getInterfaces()) { describe(interfaze, pad + " ", "implements "); } describe(clazz.getComponentType(), pad + " ", "elements are "); describe(clazz.getSuperclass(), pad + " ", "extends ");}static void describe(Class<?> clazz) { describe(clazz, "", ""); System.out.println();}public static void main(String[] args) { describe(boolean[][].class); describe(java.math.RoundingMode.class); describe(java.util.ArrayList.class); describe(void.class);}上面的代码片段产生以下输出:
array boolean[][] ( [[Z ) implements interface Cloneable ( java.lang.Cloneable ) implements interface Serializable ( java.io.Serializable ) elements are array boolean[] ( [Z ) implements interface Cloneable ( java.lang.Cloneable ) implements interface Serializable ( java.io.Serializable ) elements are primitive boolean ( boolean ) extends class Object ( java.lang.Object ) extends class Object ( java.lang.Object )enum RoundingMode ( java.math.RoundingMode ) extends class Enum ( java.lang.Enum ) implements interface Comparable ( java.lang.Comparable ) implements interface Serializable ( java.io.Serializable ) extends class Object ( java.lang.Object )class ArrayList ( java.util.ArrayList ) implements interface List ( java.util.List ) implements interface Collection ( java.util.Collection ) implements interface Iterable ( java.lang.Iterable ) implements interface RandomAccess ( java.util.RandomAccess ) implements interface Cloneable ( java.lang.Cloneable ) implements interface Serializable ( java.io.Serializable ) extends class AbstractList ( java.util.AbstractList ) implements interface List ( java.util.List ) implements interface Collection ( java.util.Collection ) implements interface Iterable ( java.lang.Iterable ) extends class AbstractCollection ( java.util.AbstractCollection ) implements interface Collection ( java.util.Collection ) implements interface Iterable ( java.lang.Iterable ) extends class Object ( java.lang.Object )primitive void ( void )
API链接
Class.getName()
- 解释数组和基元的“ funky”名称
参考文献
- Java教程/反射API
- 另请参阅: 有效的Java 2nd Edition,第53项:首选接口而不是反射
- JLS 15.8.2类文字



