Java 空指针异常(NullPointerException)问题分析

404 阅读1分钟

Java 空指针异常(NullPointerException)是 Java 开发者常见的问题之一。这个异常通常在代码中出现了一个未被初始化的对象或者变量时抛出。以下是一些常见的空指针异常问题:

  1. 对一个 null 引用调用方法或访问成员变量
String str = null;
str.length(); // 抛出 NullPointerException 异常
  1. 访问数组中的 null 元素
String[] arr = new String[5];
arr[0].length(); // 抛出 NullPointerException 异常
  1. 在 try-catch 语句块中使用了未初始化的变量
try {
    int i;
    // ...
} catch (Exception e) {
    // ...
}
  1. 使用了未初始化的局部变量
String str;
System.out.println(str); // 抛出 NullPointerException 异常
  1. 在对象创建之前就调用了其方法
public class MyClass {
    private String name;

    public void setName(String name) {
        this.name = name;
    }
}

MyClass obj = null;
obj.setName("John"); // 抛出 NullPointerException 异常

为避免空指针异常,建议在使用对象之前进行非空判断,或对对象进行初始化。例如:

String str = null;
if (str != null) {
    System.out.println(str.length());
}

String[] arr = new String[5];
if (arr[0] != null) {
    System.out.println(arr[0].length());
}

MyClass obj = new MyClass();
if (obj != null) {
    obj.setName("John");
}