java - System.out 中的三元运算符

标签 java

我在我们的项目中发现了下面的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/

相关文章:

java - Java 中 ln(N!) 的求解算法

java - 有没有办法在不使用 values/strings.xml 的情况下本地化 android 应用程序?

java - 使用java将日期时间插入数据库

java - 动态表数据检索 - selenium webdriver

java - Android文件描述符泄漏调试

java - 保护 REST API

java - Tomcat Servlet 文件上传和 UTF-8

Java - 在特定索引处添加元素并将其他元素下推

java 。如何在循环中添加原始值 - (for)

java - 在 Java 中的数据库之间切换