Java - 如何检查一个变量或对象是否为空

109 阅读1分钟

当你在一个值为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() 的调用是在一个值为nullString 变量上进行的,导致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)
  • 使用ObjectsnonNull() 方法

在执行进一步的操作之前,检查null 值将帮助你避免NullPointerException 错误。

这就是你如何在Java中检查一个变量或对象是否不是null 。我希望这个教程对你有用🙏。