int.class是什么意思

Har*_*ran 13 java primitive reference

在java int,float等中,是原始类型.我们需要使用包装类来使用泛型.但是仍然以下声明在java中有效,

 Class<Integer> intClass=int.class
Run Code Online (Sandbox Code Playgroud)

int.class即使它是原始类型,我们怎么称呼?

Sur*_*tta 6

原语成为对象

对于基元,在相应的包装类中有可用作名为TYPE的常量的Class对象 - 即int.class更改为java.lang.Integer.TYPE.对于其他类型,编译器在要编​​译的类中创建一个私有成员变量来保存Class对象,并生成使用Class.forName()初始化该成员的代码.

找到了一些讨论

这里有一个很好的讨论,你的例子也包含在这个链接中.

从那里说几句话:

一个班怎么能成为一个原始人?让我们把事情搞得一团糟.我们可以通过编码访问表示已定义类的Class对象,比如说:

Equation.class // returns the Equation Class object
Run Code Online (Sandbox Code Playgroud)

但是,我们也可以说:

int.class
Run Code Online (Sandbox Code Playgroud)

获取名称为"int"的Class对象.注意我们没有将getClass()方法发送给对象; 我们使用保留字作为内置基元类型(int),并使用点表示法访问其类"字段".这会返回一个Class对象!