繁体   English   中英

为什么double.class不等于java.lang.Double.class?

[英]Why doesn't double.class equal java.lang.Double.class?

由于原始double用java.lang.Double类表示,所以double.class不应该等于java.lang.Double.class吗? (这当然也发生在其他原始类型上)

System.out.println(double.class == Double.class);

输出:

Result: false

Double.class是与包装器类型Double对应的类对象。 double实际上不是一个类,但double.class是反射中使用的对象,表示参数或返回类型具有基本类型double

它们是Class<Double>两个不同实例。 这通常不会发生(对于普通对象),但对于包装类,这正是区分基本类型的字段和反射中的包装类型的方法。

double是原始类型, Double是类类型。 Double类上有一个名为TYPE的属性:

例如System.out.println(double.class == Double.TYPE); 打印真实。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM