gpt4 book ai didi

java - 为什么第一行抛出 NullPointerException 但第二行没有?

转载 作者:行者123 更新时间:2023-12-04 22:53:54 24 4
gpt4 key购买 nike

以下代码中的 toString 方法抛出 NullPointerException,但之后的 println 调用打印 null。为什么他们没有相同的结果?泰尔

package exceptionsNullPointer;

public class NPArrays {

public static void main(String[] args) {
String[] laces = new String[2];

// this line throws NullPointerException
System.out.println(laces[1].toString());

// this line prints null
System.out.println(laces[1]);
}
}

最佳答案

因为 laces[1] 是对 String 数组(尚未初始化)成员的完全有效引用。

创建非基本类型的数组时,其所有成员默认为 null,直到它们被赋予实际值。因此,引用 laces[1] 将简单地返回 null,这很好。

但是您的第一行尝试在空引用上调用 toString 方法。因为 null 引用不指向实际的 String 实例,所以 Java 唯一能做的就是抛出 NullPointerException。您不能在 null 引用(或指针)上调用方法。

关于java - 为什么第一行抛出 NullPointerException 但第二行没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450831/

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