0

其实这不是一个问题,因为我会立即提供答案,所以你不会爱上同样的事情:

我想检查(使用反射) aField是原语还是包装器类之一。

我检查了使用cl.isPrimitive()和比较c==Boolean.TYPE,但根据我的调试器,Boolean.TYPE.toString 返回“布尔”,而不是“布尔”。

4

1 回答 1

1

Double.TYPE == double.class将返回true
Double.class != Double.TYPE也会回来true

它们(double.class 和 Double.TYPE)以某种方式代表相同的东西,不要问我为什么......

如果要对比Double,就对比Double.class
如果要与 比较double,请与double.class或进行比较Double.TYPE

虽然我没有用所有原语测试它,但对于所有其他原语及其包装器来说,它应该是相同的。

我希望这将至少节省我写这篇文章所花费的时间。

于 2013-05-09T15:38:29.483 回答