使用String消息在sysout中进行Null检查

问题描述 投票:0回答:1

执行此:

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

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

java
1个回答
6
投票

+运算符的优先级高于==运算符,因此"main" + s==null被评估为("main" + s)==null

"main" + s将成为一个字符串"mainnull",这不是null,所以"main" + s==null是假的。

你想要的应该是加上括号的"main" + (s==null)

© www.soinside.com 2019 - 2024. All rights reserved.