与Double的比较.TYPE和Double.class



实际上这不是一个问题,因为我会马上提供答案,所以你不会陷入同样的事情:

我想检查(使用反射)如果一个Field是一个原语或包装类之一。

我检查了使用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.classDouble.TYPE比较。

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

我希望这篇文章能给别人节省至少和我写这篇文章一样多的时间。

相关内容

  • 没有找到相关文章

最新更新