Java 条件赋值中的错误类型
2022-09-02 04:34:11
在下面的代码中,我有两个相同的条件赋值操作,一个返回 Double 类型的对象,第二个返回字符串“Integer”。
double d = 24.0;
Number o = (d % 1 == 0) ? new Double(d).intValue() : new Double(d).doubleValue();
String result = (d % 1 == 0) ? "Integer" : "Double";
System.out.println(o.getClass()); // prints "class java.lang.Double"
System.out.println(result); // Integer
为什么完全相同的表达式返回两个不同的东西?