直到现在我才知道Java提供了可以代替常规条件操作的三元运算符。
// normal conditional
result;
if(testCondition){
result = value1;
} else {
result = value12;
}
//ternary operator
result = testCondition ? value1 : value2;
但是当我在控制台下运行代码时,即使逻辑相同,也会打印出不同的结果:
public static void main(String[] args) {
// normal conditional
Object o1;
if (true) {
o1 = new Integer(1);
} else {
o1 = new Double(2.0);
}
//ternary operator
Object o2 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);
System.out.println(o2);
}
Output :
1
1.0
结果令我惊讶,我一直以为正常的条件和三元相同。
为什么控制台和三元运行的进程不同?
为什么控制台显示不同的结果?