知道为什么以下程序抛出一个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.
以上就是动力节点java培训机构的小编针对“Java连续字符串中的条件运算符”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习