加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 连续字符串中的条件运算符

发布时间:2020-12-14 16:43:21 所属栏目:Java 来源:网络整理
导读:我想知道为什么以下程序抛出一个NPE public static void main(String[] args) { Integer testInteger = null; String test = "test" + testInteger == null ? "(null)" : testInteger.toString();} 而这个 public static void main(String[] args) { Integer
我想知道为什么以下程序抛出一个NPE
public static void main(String[] args) {
    Integer testInteger = null;
    String test = "test" + testInteger == null ? "(null)" : testInteger.toString();
}

而这个

public static void main(String[] args) {
    Integer testInteger = null;
    String test = "test" + (testInteger == null ? "(null)" : testInteger.toString());
}

没有.这当然是一个优先问题,我很好奇连接如何工作.

解决方法

这是了解 operator precedence的重要性的一个例子.

您需要括号,否则解释如下:

String test = ("test" + testInteger) == null ? "(null)" : testInteger.toString();

请参阅here了解操作符列表及其优先级.还要注意该页面顶部的警告:

Note: Use explicit parentheses when there is even the possibility of confusion.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读