我在我们的项目中发现了下面的sysout
,它总是打印“Not Null”。即使我是否初始化了 Val
变量,它也会打印“Not Null”。
另外为什么它不打印前面的“mylog”?有人可以解释一下吗?
String Val = null;
System.out.println("mylog : " + Val!=null ? "Not Null" :"Is Null");
最佳答案
使用括号:
System.out.println("mylog : " + (Val!=null ? "Not Null" :"Is Null"));
否则它会被解释为:
whatToCheck = "mylog: " + val
System.out.println(whatToCheck !=null ? "Not Null" : "Is Null"
其计算结果类似于“mylog: null”或“mylog: abc”。 这始终是一个非空字符串。
关于java - System.out 中的三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26338947/