在下面的代码中,最后一个 sop 没有打印
String A=null;
if (A.contains("xyz")) {
System.out.println("loop1");
}
System.out.println(A);
由于 A 为空,上面的代码将抛出一个 NullPointerException(NPE),这是一个 RuntimeException。
当对 null 执行任何调用时,将引发异常,在您的情况下是包含方法调用。
A.contains("xyz")
A 是null
,并且您正在调用if (A.contains("xyz"))
对null
引用结果的任何调用NullPointerException
,您没有将上述语句包装在try/catch中,因此异常会传播到更高级别,而无需在下面进一步执行代码。
将其更改为类似以下内容:
String A="";
if (A.contains("xyz")) {
由于 A 为空,因此您正在尝试在 A 上调用包含。因此NPE
在String A=null;
中,您将字符串引用 A 设置为 null。此时,您有一个引用,但它尚未指向对象。然后,通过调用 .contains
方法尝试使用该引用,就好像它指向对象一样,这将导致 NullPointerException,因为在引用指向的位置没有要执行的代码。