String.class 的类型是 Class< String >
因class是关键字, 所以类名.class编译时确定。而getclass()是某个具体的方法来调用,是运行时根据实际实例确定,getClass()是动态而且是final的。
基本数据类型的封装类还可以通过.TYPE 的方式获取其 Class 对象,但要注意。TYPE 实际上获取的封装类对应的基本类型的 Class 对象的引用。
问题1、Class< T >就是Class类,只不过是类型为T的类,所以Class< T >可以叫做是类实例、类类型但是还可以叫字节码文件?
问题2、 Class< T >和Class类是同一者,只是前者的类类型为T,这个我没理解错吧?
问题3、明明用.class方法就可以获取对应的class字节码对象,为啥基本类型包装类还要用.TYPE方式去获取?可不可以就只用.class方式获取?(而且.TYPE方式获取的还是对应的基本类型的 Class 对象的引用,并不是class对象)
public static final Class<Integer> TYPE = (Class<Integer>) Class.getPrimitiveClass("int");