原语是否具有关联的类对象

时间:2017-05-03 20:24:05

标签: java reflection

我很擅长反思并且希望能够抓住这个概念。

如果可能,请通过示例

解释以下声明

类对象

在对类进行任何检查之前,需要获取其java.lang.Class对象。

Java中的所有类型,包括基本类型(int,long,float等),包括数组都有一个关联的Class对象。

int(primitive)的关联类对象如何?

我无法理解突出显示的文字。

参考链接 - http://tutorials.jenkov.com/java-reflection/classes.html

1 个答案:

答案 0 :(得分:2)

您可以从包装器对象上的静态方法获取它们,例如Integer.TYPE。来自Integer.TYPE Javadoc:

  

表示基本类型int的类实例。

根据JLS 15.8,这些等同于盒装基元的类,因此int.classInteger.classInteger.TYPE应该是等效的表达式:

  

p.class的类型,其中p是基本类型的名称(第4.2节),是Class,其中B是拳击转换后的类型p的表达式类型(第5.1.7节)。

...但是,如this SO answer所述,这与文档不一致  对于Class.isPrimitive

  

这些对象只能通过以下公共静态最终变量访问,并且是此方法返回true的唯一Class对象。

     

另见:   Boolean.TYPE,Character.TYPE,Byte.TYPE,Short.TYPE,Integer.TYPE,Long.TYPE,Float.TYPE,Double.TYPE,Void.TYPE

这表明在早期版本的SDK中,这些对象不一定等效。