重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文小编为大家详细介绍“Java NullPointerException异常的原因是什么及怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java NullPointerException异常的原因是什么及怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
专注于为中小企业提供成都网站制作、网站建设、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业什邡免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
一般空指针的原因就是:当前正在使用的变量没有对应的值
也就是说:当前正在使用的变量没有引用指向对应的值/对象
也可以这样说:Null Pointer就相当于Null Reference
如下面的代码都会报空指针异常:
public class Main { public static void main(String[] args) { String str1 = null; System.out.println(str1.toLowerCase()); //NullPointerException } } public class Main { String str2; //默认值为null public static void main(String[] args) { Main ma = new Main(); System.out.println(ma.str2.toLowerCase()); //NullPointerException } } 因为成员变量str2和局部变量str1都是默认为null,所以都没有具体的指向某个值/对象
定位NullPointerException
如果产生了NullPointerException,例如,调用a.b.c.x()时产生了NullPointerException,原因可能是:
a是null;
a.b是null;
a.b.c是null;
确定到底是哪个对象是null以前只能打印这样的日志:
System.out.println(a);
System.out.println(a.b);
System.out.println(a.b.c);
如下面的代码:
public class test20210629 { public static void main(String[] args) { Person p = new Person(); System.out.println(p.address.city); //输出:null System.out.println(p.name[0]); //输出:null System.out.println(p.address.city.toLowerCase()); //空指针异常 System.out.println(p.name[0].toLowerCase()); //空指针异常 } } class Person { String[] name = new String[2]; Address address = new Address(); } class Address { String city; String street; String zipcode; }
总结:
空指针发生的原因:一个变量A没有值(或没有指向对应的对象),然后直接使用A的方法,或者将A当成参数传给其他对象/方法使用,就会报空指针异常!
第一步,先看一下异常是怎么产生的,在输入一个这样的地址:http://localhost:8083/***/***/***/***?productId=564564564573534,在控制台就会如图所报错
第二步,要解决这样的空指针错误,就先要找到出错误的JAVA代码,点击就可以,如图:
第三步,定位到java代码后,在debug启动项目,并添加断点,怎么启动
第四步,继续第一步的地址,在debug的模式下可以看到此字段的值是Null, 如图:
第五步,输入正确的productId,如正确的链接是:http://localhost:8083/***/***/***/***?productId=47681438955545,如图,debug模式下此字段就不是null,如图:
第六步,如果没有其他错误的话,此时页面也应该打开了
读到这里,这篇“Java NullPointerException异常的原因是什么及怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。