经典程序解析
一
输出结果?
public class Demo01 {
public static void main(String[] args) {
boolean isNull = true;
System.out.println(isNull ? getValue(isNull) : 0);
}
private static Integer getValue (boolean isNull) {
return isNull ? null : 0;
}
}

修改之后:

半解析:
----三目运算中 只要后面两个元素是不同的类型, 涉及到类型转换,那么编译器会往下( 基本类型 )转型 ,再进行运算;如果运算中有int和Integer,Integer会先转成int再计算。
----三目运算中自动拆箱时,会转换成int,所以会报NullPointerException。
本文探讨了Java中的三目运算符在不同类型之间的转换规则,特别是在涉及`null`和基本类型时的问题。当运算符后跟随不同类型的值,编译器会进行向下转型。如果运算中包含`Integer`和`int`,`Integer`会先转换为`int`,这可能导致`NullPointerException`。文章通过示例代码解释了这个问题。
3912

被折叠的 条评论
为什么被折叠?



