java的源代码中对java.lang.Class<T>类描述如下.
java.lang.Class类的实例代表了一个正在运行的java程序中的类和接口.特别的,一个枚举类似于一个类, 一个注解是一个接口.每个数组都属于类,该类被反射成为一个Class对象而被所有拥有同样元素类型和数组长度的数组所共享(?).原始的Java数据类型(boolean, byte, char, short, int, long, float and double) 以及关键字void在内存模型中, 也被作为Class对象进行描述.
java.lang.Class类没有public的constructor.取而代之的是,在java的类加载器(ClassLoader)中,当某个特定的类被加载并且调用defineClass方法时,Class的实例被JVM自动构造.
下面的例子使用了Class的对象来打印出某个特定类的名称.
void printClassName(Object obj) {
System.out.println("The class of " + obj +
" is " + obj.getClass().getName());
}
通过一个明确地类型名称(或者void类型)通过其class属性我们可以获得对应的Class对象.
<span> </span>System.out.println("The name of class Foo is: "+Foo.class.getName());