其实这不是一个问题,因为我会立即提供答案,所以你不会陷入同样的事情:
我想检查(使用反射)Field
是原语还是包装类之一。
我使用 cl.isPrimitive()
进行了检查,并进行了 c==Boolean.TYPE
等比较,但根据我的调试器,Boolean.TYPE.toString 返回“boolean” ,而不是“boolean 值”。
最佳答案
Double.TYPE == double.class
将返回 true
。
Double.class != Double.TYPE
也将返回 true
。
它们(double.class 和 Double.TYPE)以某种方式代表相同的事物,不要问我为什么......
如果您想与 Double
进行比较,与 Double.class
进行比较。
如果您想与 double
进行比较,请与 double.class
或 Double.TYPE
进行比较。
虽然我还没有对所有原语进行测试,但对于所有其他原语及其包装器来说应该是相同的。
我希望这至少能节省我写这篇文章所花费的时间。
关于java - 与 Double.TYPE 和 Double.class 的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16465650/