gpt4 book ai didi

java - Null 检查时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-02 06:18:58 25 4
gpt4 key购买 nike

我搞砸了下面的代码,无法区分这两个代码片段:

String Check=null;

if(Check!=null && Check.isEmpty()){
System.out.println("Get Inside");
}

以上代码运行良好并打印消息。

if(Check==null && Check.isEmpty()){
System.out.println("get Inside")
}

此代码将抛出 NullPointerException。无法区分此代码请帮助。

最佳答案

&& 运算符是一个短路,如果没有必要,它不会计算右侧。在这种情况下,有必要:

if(Check==null && Check.isEmpty()){
System.out.println("get Inside")
}

如果Checknull(确实如此),你将继续检查&&之后的条件,你得到Check.isEmpty()。因为 Checknull,所以它就像是一个 NEP 的 null.isEmpty()

为什么?

当两个表达式之间有&&时,如果第一个为false,则答案永远为false,另一方不会被检查,但是当第一个为true时,您必须继续并检查另一侧,以了解是否所有表达式都应评估为 truefalse

但是当你有:

if(Check!=null && Check.isEmpty()){
System.out.println("get Inside")
}

那么右侧将无法到达,因为检查它是多余的。你已经得到了false,不管你在右边得到true还是false,结果都是 false 因为这是一个 AND (FALSE && WHATEVER = FALSE)。那么为什么要检查呢?

This link可能对你有帮助。

(我建议您遵循 Java Naming Conventions 并使变量以小写字母开头)。

关于java - Null 检查时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16638694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com