public class Test {
public static void main(String[] args) {
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);
}
}
打印结果:
1.0
三目运算符比较基本数据类型,在编译阶段自动拆箱为int和double,由于三目运算符要求表达式2和表达式3类型一致,所以在编译阶段自动类型提升(即int自动转换为double类型),再自动装箱为Object,输出时使用多态调用重写的toString。