与Double.TYPE和Double.class的比较

时间:2013-05-09 15:38:29

标签: java class reflection types primitive

实际上这不是一个问题,因为我会立即提供答案,所以你不要为同一件事而堕落:

我想检查(使用反射)Field是一个原语还是其中一个包装类。

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

1 个答案:

答案 0 :(得分:1)

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

他们(double.class和Double.TYPE)不知何故代表同样的事情,不要问我为什么......

如果您想与Double进行比较,请与Double.class进行比较 如果您想与double进行比较,请与double.classDouble.TYPE进行比较。

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

我希望这至少可以节省一些人写这篇文章的时间。