1

当我运行这个代码片段时,双方都没有选择。

if (Boolean.class.isAssignableFrom(boolean.class)) {
     uLog.error("Boolean is => boolean");
}
if (boolean.class.isAssignableFrom(Boolean.class)) {
     uLog.error("boolean is <= Boolean");
}

具体来说,我正在尝试使用反射测试参数类型:

Type[] pType = m.getGenericParameterTypes();

而且我无法弄清楚布尔参数的正确测试。

4

2 回答 2

5

Boolean(对象)和boolean(原语)不能相互转换/分配。但是,从 Java 1.5 开始,编译器会自动在两者之间装箱/拆箱。

当你这样做时:

boolean b =
Boolean bb = b;
b = bb;

Java 编译器自动将其转换为:

boolean b=
Boolean bb = Boolean.valueOf(b);
b = bb.booleanValue();
于 2012-04-09T02:15:58.980 回答
1

内置类型由boolean表示Boolean.TYPE。由于boolean不能被继承,因此您不需要isAssignableFrom:您可以简单地检查有问题的类型是否相等,Boolean.TYPE以查看参数的类型是否是内置的boolean

于 2012-04-09T02:16:35.570 回答