经典程序解析

本文探讨了Java中的三目运算符在不同类型之间的转换规则,特别是在涉及`null`和基本类型时的问题。当运算符后跟随不同类型的值,编译器会进行向下转型。如果运算中包含`Integer`和`int`,`Integer`会先转换为`int`,这可能导致`NullPointerException`。文章通过示例代码解释了这个问题。
摘要由CSDN通过智能技术生成

经典程序解析

输出结果?

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值