Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 下面代码中出现空指针异常_Java - Fatal编程技术网

Java 下面代码中出现空指针异常

Java 下面代码中出现空指针异常,java,Java,在下面的代码中,最后一个sop没有打印出来 String A=null; if (A.contains("xyz")) { System.out.println("loop1"); } System.out.println(A); A为null,如果(A.contains(“xyz”) 对null引用结果NullPointerException的任何调用,都不会将上述语句包装在try/catch中,因此异常会传播到更高的级别,而不会执行下面的代码 将其更改为: String A=""

在下面的代码中,最后一个sop没有打印出来

String A=null;

if (A.contains("xyz")) {
    System.out.println("loop1");
}
System.out.println(A);

A为
null
,如果(A.contains(“xyz”)

null
引用结果
NullPointerException
的任何调用,都不会将上述语句包装在try/catch中,因此异常会传播到更高的级别,而不会执行下面的代码

将其更改为:

String A="";

当A为null时,您试图调用A上的Contains。因此,由于上面的代码A为null,NPE将抛出一个(NPE),这是一个运行时异常

当对null执行任何调用时(在您的情况下为contains方法调用),将引发异常

A.contains("xyz")

字符串中,A=null您正在将字符串引用A设置为null。此时您有一个引用,但它尚未指向对象。然后,通过调用
.contains
方法,尝试将引用当作指向对象来使用,这将导致NullPointerException,因为引用所指向的位置中没有要执行的代码。

实际上,它可能发生在
if(a.contains(“xyz”))
null
上没有任何
操作
抛出
NPE
<代码>“xyd”。eg的等于(null)
运行良好。您应该说,
对null的任何调用
都会抛出
NPE
@RohitJain:好的,更改了措辞。@RohitJain:我们是否在上述语法中调用xyd(或)null上的等于运算?不是英语专家。我通常认为,物体离开,然后。(点)对那个物体的操作不是吗?@Nambari。。是 啊你说得对。就是这样。我们在“xyd”上调用
equals
方法。@RohitJain:好的,那么你的评论可能站不住脚。请参阅我对@Nambari关于你上一条语句的回答的评论。@All:实际上上面的代码段是for循环,有一次它有空值,剩下的时间是有值的,那么如何解决这个问题,从而避免使用空值,而接受其他值呢?@adityasingh在调用a上的方法之前,需要执行空值检查。这应该看起来像a!=null&&A.contains(“xyz”)@ADITYASING很高兴它对您有效。您能接受答案吗?
A.contains("xyz")