【发布时间】:2015-09-23 07:14:27
【问题描述】:
Class 实例在每个类型的常量池中创建,当特定类 (X) 被加载时。
javac 编译此语法 int.class 以指向 Integer.TYPE 指向的对象。
下面的代码,可以访问class X的parameterise(int)构造函数。
Class c = X.class;
Constructor cons = c.getConstructor(int.class);
cons.newInstance(10);
在上面的代码中,我不明白int.class 参数的作用,在幕后。
为什么getConstructor 不是设计为接受String 类型参数“int”而不是int.class? Class.forName() 的参数就是一个例子。
【问题讨论】:
-
请再次阅读问题
-
代码在
class X中搜索一个带有int类型参数的构造函数。 “类”Integer.TYPE指的是这里的原始整数... -
为什么我们需要类文字语法作为参数?字符串“int”参数不够用??
-
问题是,为什么将
int.class作为参数而不是int?我怀疑设计师觉得在末尾添加.class可以更清楚地表明这是一个类型文字,而不是缺少括号或输入错误的变量。
标签: java reflection