int.class是Class对象的引用,严格来说是原始类型int的Class对象引用。举一个简单的例子,假设你自己建立了一个Dog类,那么Dog.class就是Dog类型的Class对象引用。每一个类加载之后,类加载器会给建立Class对象,你可以用Class.forName()方法取得该对象的引用,比如,Class<Dog> d = Class.forName("Dog");其中d就是Dog的Class对象的引用。同时,你也可以用Class<Dog> d = Dog.class;来获取Dog的Class对象的引用。其实Dog.class本身就是引用。
int.class是int类型的Class对象引用。int类型是原始类型,JVM运行时,int类型Class对象已经建立,那么如何获取该对象的引用呢?就是用int.class。另外一种方法是用Integer.TYPE静态成员变量来获取。
二者的区别:int.class是一个引用,注意是一个引用,而不是类;Integer是int类型的包装类,注意是一个类,而不是引用。 |