其实这不是一个问题,因为我会立即提供答案,所以你不会爱上同样的事情:
我想检查(使用反射) aField
是原语还是包装器类之一。
我检查了使用cl.isPrimitive()
和比较c==Boolean.TYPE
,但根据我的调试器,Boolean.TYPE.toString 返回“布尔”,而不是“布尔”。
其实这不是一个问题,因为我会立即提供答案,所以你不会爱上同样的事情:
我想检查(使用反射) aField
是原语还是包装器类之一。
我检查了使用cl.isPrimitive()
和比较c==Boolean.TYPE
,但根据我的调试器,Boolean.TYPE.toString 返回“布尔”,而不是“布尔”。
Double.TYPE == double.class
将返回true
。
Double.class != Double.TYPE
也会回来true
。
它们(double.class 和 Double.TYPE)以某种方式代表相同的东西,不要问我为什么......
如果要对比Double
,就对比Double.class
。
如果要与 比较double
,请与double.class
或进行比较Double.TYPE
。
虽然我没有用所有原语测试它,但对于所有其他原语及其包装器来说,它应该是相同的。
我希望这将至少节省我写这篇文章所花费的时间。