https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html
public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement
T,表示由此Class对象建模的类的类型,例如,String.class的类型是Class<String>。
如果正在建模的类未知,使用Class<?>。
一、简介
一个Class类的实例表示一个正在运行的Java应用中的类和接口。
枚举是一种类,注释是一种接口。每个数组也属于一个类,这个类被反射为一个Class对象,该对象由所有具有相同元素类型和相同维数的数组共享。
原始Java类型(布尔型,字节型,char型,short型,int型,long型,float型和double型)以及关键字void也表示为Class对象。
Class类没有公共构造函数。而Class对象是由JVM自动构造的。在类被加载时,JVM通过调用类加载器中的defineClass方法来构造Class对象。
以下示例使用Class对象来打印对象的类名称:
void printClassName(Object obj) { System.out.println("The class of " + obj + " is " + obj.getClass().getName()); }
也可以使用类名来获取指定类型(或void类型)的Class对象:
System.out.println("The name of class Foo is: "+Foo.class.getName());
二、方法(太多了)