我很擅长反思并且希望能够抓住这个概念。
如果可能,请通过示例
解释以下声明类对象
在对类进行任何检查之前,需要获取其java.lang.Class对象。
Java中的所有类型,包括基本类型(int,long,float等),包括数组都有一个关联的Class对象。
int(primitive)的关联类对象如何?
我无法理解突出显示的文字。
参考链接 - http://tutorials.jenkov.com/java-reflection/classes.html
答案 0 :(得分:2)
您可以从包装器对象上的静态方法获取它们,例如Integer.TYPE
。来自Integer.TYPE
Javadoc:
表示基本类型
int
的类实例。
根据JLS 15.8,这些等同于盒装基元的类,因此int.class
,Integer.class
和Integer.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中,这些对象不一定等效。