java - 使用字符串消息检查 sysout 为空

标签 java

执行此操作:

public class Test
{
     public static void main(String[] args)
    {
        String s=null;
        System.out.println(s==null);
        System.out.println("main" + s==null);
    }
}

输出:

true 
false

你能解释一下为什么空检查失败并且没有打印“main”吗?

最佳答案

+ 运算符的优先级高于 == 运算符,因此 "main"+ s==null 的计算结果为 ( “主” + s)==null.

"main"+ s 将变成字符串 "mainnull",它不是 null,因此 "main"+ s==null 为 false。

您想要的应该是 "main"+ (s==null) 并添加括号。

关于java - 使用字符串消息检查 sysout 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49083483/

相关文章:

java - 声明处理程序错误

java - MapDB实现BTreeMap时如何使用byte数组作为key

java - 如何在ArrayList View 上调用notifyDataSetChanged()?

java - 如何在viewpager android中保留1000个动态 fragment ?

java - 如何将多个 JSON 响应映射到单个 Java POJO?

java - DeepEquals.deepEquals(refObject, ref)

java - GWT SeralizationStreamFactory 读取器问题

java - 如何在 Hibernate 中内连接两个独立实体

java - 为什么菱形运算符用于 Java 7 中的类型推断?

java - 在标记周围 50 米半径内时,触发方法