java - 与 Double.TYPE 和 Double.class 的比较

标签 java class reflection types primitive

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

我想检查(使用反射)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.classDouble.TYPE 进行比较。

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

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

关于java - 与 Double.TYPE 和 Double.class 的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16465650/

相关文章:

java - Java中的executeUpdate方法是线程安全的吗

java - 如何在 Play Framework 中复制上传的文件?

java - Object类如何实现clone()方法

c# - 从 Action<T> 获取参数

ruby - 如何使用反射获取参数名称

java - Wildfly:如果我调用我的 Web 应用程序,为什么我只得到 "Forbidden"?

java - 使用 java 的 Process.exec 启动的进程始终返回退出代码 0

python - 使用Python计算坡度的程序

java - 覆盖错误Java,程序不会只读取两种方法

java - 将类从 Maven 依赖项加载到我的 ClassLoader