【发布时间】:2015-07-28 12:51:50
【问题描述】:
我的应用程序中有这段代码(简化版):
Object result;
if (check)
result = new Integer(1);
else
result = new Double(1.0);
System.out.println(result);
return result;
然后我决定将 if-else 语句重构为三元条件表达式,这样我的代码就更简洁了:
Object result = check ? new Integer(1) : new Double(1.0);
System.out.println(result);
return result;
原来如果check是true,两个版本打印出不同的结果:
1
或:
1.0
三元条件不是等价于对应的if-else吗?
【问题讨论】:
-
您的代码中发生了一些不同的事情,因为鉴于您提供的代码,您描述的场景不可能发生。
-
@JamesB 抱歉更新了我的问题。交换了 1.0 和 1
-
@JamesB 我可以重现这个O_o
-
@JamesB 检查是一个函数的参数。
标签: java ternary-operator