执行此:
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" + s==null
被评估为("main" + s)==null
。
"main" + s
将成为一个字符串"mainnull"
,这不是null
,所以"main" + s==null
是假的。
你想要的应该是加上括号的"main" + (s==null)
。