Java中三目运算符之类型转换

1. 前言

相信各位 Javaer 对于三目运算符(三元运算符)都不陌生,较多情况下使用三目运算符即可节省一个 if-else 语句赋值的编写,笔者也是经常使用三目运算符,前段时间遇到了一点三目运算符的类型转换的坑,便在此记录一下。望更多的朋友能够避免,也加深我对三目运算符的理解。

2. 三目运算符使用

闲话不说,直接上代码。

/**
 * 三目运算符使用
 */
public void ternaryOperator() {
   
    boolean switchLog = true;
    // 基本类型
    int intValue = switchLog ? 1 : 0;
    // 引用类型
    String strValue = switchLog ? "true" : "false";
}

三目运算符可表达为:布尔表达式 ? 表达式1 : 表达式2

布尔表达式:其结果决定三目运算符的分支情况
表达式1:当布尔表达式为 true,则执行
表达式2:当布尔表达式为 false,则执行

3. 类型转换

在三目运算符的使用过程中,即支持基本类型,也支持引用类型。值得注意的一点是,引用类型为 null 时,也是支持给引用类型赋值的。

特别的,我们关注到了基本类型和其封装类型,于是有了下述代码。

@Test
public void intInteger() {
   
    boolean switchLog = true;
    Integer oneExpre = null
    Integer result = switchLog ? oneExpre : 0;
    System.out.println(result);
}

猜想下这个程序的 result 返回什么,是 null 么?为什么?

试着运行下测试,发现得到以下报错:

java.lang.NullPointerException
	at club.chenlinghong.demo
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值