执行此操作:
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/