当你在一个值为null 的对象上调用一个方法时,Java会抛出NullPointerException 的错误。
当你从一个函数返回的对象上调用方法时,这种情况经常发生,如下所示:
class Main {
public static void main(String[] myArgs) {
String response = getNull();
System.out.println(response.length()); // NullPointerException
}
private static String getNull() {
return null;
}
}
上面代码中对response.length() 的调用是在一个值为null 的String 变量上进行的,导致Java抛出NullPointerException 错误:
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:4)
Process finished with exit code 1
response 为了避免这个错误,使代码运行时不出现任何错误,你可以对返回的值if ,看看该值是否为空。
你可以像这样使用不等于操作符(!=):
String response = getNull();
if(response != null){
System.out.println(response.length());
}
当response 的值不是null ,那么Java将在上面的if 块内运行println() 方法。
你也可以使用Objects.nonNull() 方法来检查一个变量是否是不null 。
你需要导入Objects 类并使用nonNull() 静态方法,如下所示:
import java.util.Objects;
// Inside Main class:
String response = getNull();
if(Objects.nonNull(response)){
System.out.println(response.length());
}
最后,你还可以添加一个else 条件来定义当结果为null时将会执行的代码:
String response = getNull();
if(response != null){
System.out.println(response.length());
} else {
System.out.println("response is NULL!");
}
is not null检查的完整代码如下所示:
class Main {
public static void main(String[] myArgs) {
String response = getNull();
if(response != null){
System.out.println(response.length());
} else {
System.out.println("response is NULL!");
}
}
private static String getNull() {
return null;
}
}
总结一下,你可以通过两种方式来检查一个变量或对象是否不是null :
- 使用不等于运算符 (
variable != null) - 使用
Objects类nonNull()方法
在执行进一步的操作之前,检查null 值将帮助你避免NullPointerException 错误。
这就是你如何在Java中检查一个变量或对象是否不是null 。我希望这个教程对你有用🙏。