如何在 Java 中解决 NullPointerException?


NullPointerException 是 JVM 在我们的应用程序代码、其他引用的 API 或中间件遇到以下情况时抛出的运行时异常。

  • 尝试调用空对象的实例方法。

  • 尝试访问或修改空对象的特定字段。

  • 尝试获取空对象作为数组的长度。

解决 NullPointerException 的步骤

  • 查看 java.lang.NullPointerException 堆栈跟踪并确定异常触发的位置(应用程序代码、第三方 API、中间件软件并提取行号)。

  • 如果问题出现在应用程序代码中,则需要进行代码 walkthrough。如果问题来自第三方 API 或中间件,则需要首先查看引用的代码并确定它是否可能是问题的间接来源,例如,将空值传递给第三方 API 方法等。

  • 如果在应用程序代码中发现问题,则尝试确定哪个对象实例为空并导致问题。我们需要修改代码以添加适当的空值检查验证和正确的日志记录,以便我们也能了解空值的来源。

示例

public class NPEDemo {
   private String field1 = null;
   private String field2 = null;
   public String getField1() {
      return field1;
   }
   private void setField1(String field1) {
      this.field1 = field1;
   }
   public String getField2() {
      return field2;
   }
   private void setField2(String field2) {
      this.field2 = field2;
   }
   public static void main(String[] args) {
      try {
         NPEDemo npe = new NPEDemo();
         npe.setField1("field1 value");
         npe = null;
         npe.setField2("field2 Value");
      } catch (Throwable e) {
         System.out.println("Java Error is: "+e );
         e.printStackTrace();
      }
   }
}

输出

Java Error is: java.lang.NullPointerException
java.lang.NullPointerException
	at NPEDemo.main(NPEDemo.java:21) 

更新于: 2023-11-21

2K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告