简体   繁体   English

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

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

Since the primitive double is represented with the java.lang.Double class, shouldn't double.class equal java.lang.Double.class? 由于原始double用java.lang.Double类表示,所以double.class不应该等于java.lang.Double.class吗? (This of course also happens on other primitive types too) (这当然也发生在其他原始类型上)

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

Output: 输出:

Result: false

Double.class is the class object corresponding to the wrapper type Double . Double.class是与包装器类型Double对应的类对象。 double is actually not a class, but double.class is the object used in reflection to indicate that an argument or return type has primitive type double . double实际上不是一个类,但double.class是反射中使用的对象,表示参数或返回类型具有基本类型double

They are two distinct instances of Class<Double> . 它们是Class<Double>两个不同实例。 This doesn't normally happen (for ordinary objects), but for wrapper classes, that's exactly the way to distinguish between fields of the primitive type and the wrapper type in reflection. 这通常不会发生(对于普通对象),但对于包装类,这正是区分基本类型的字段和反射中的包装类型的方法。

double is a primitive type, Double is a class type. double是原始类型, Double是类类型。 There is a property on the Double class called TYPE : Double类上有一个名为TYPE的属性:

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

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

相关问题 与Double.TYPE和Double.class的比较 - Comparison against Double.TYPE and Double.class int.class,double.class的用例是什么? - what's the usecase for int.class, double.class? snapshot.getvalue(double.class) 的拆箱可能会产生空指针异常 - unboxing of snapshot.getvalue(double.class) may produce nullpointer exception Groovy:无法将 object 'null' 和 class 'null' 转换为 class 'double'。 尝试使用“java.lang.Double” - Groovy: Cannot cast object 'null' with class 'null' to class 'double'. Try 'java.lang.Double' instead Java扫描程序类不会花一倍 - Java scanner class won't take double MongoDB: class java.lang.Double cannot be cast to class java.lang.Long - MongoDB: class java.lang.Double cannot be cast to class java.lang.Long 为什么我不能将 Double object 设置为等于 int? - Java - Why can't I set a Double object equal to an int? - Java 为什么编译器不推断 T(interface) 是 class 在具有双界泛型类型时实现 T ? - Why doesn't the compiler infer T(interface) to be class that implements T when having double bounded generic type? 扩展类不能正确构造; 双重错误,但我不明白为什么 - Extended class doesn't construct properly; double error but I don't understand why 为什么java.lang.Thread类没有一个仅包含ThreadGroup的构造函数? - Why doesn't java.lang.Thread class have a constructor which takes only a ThreadGroup in?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM