详解Java中NullPointerException异常的原因和解决办法
1、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当成参数传给其他对象/方法使用,就会报空指针异常!
2、NullPointerException异常解决办法
第一步,先看一下异常是怎么产生的,在输入一个这样的地址:http://localhost:8083/***/***/***/***?productId=564564564573534,在控制台就会如图所报错

第二步,要解决这样的空指针错误,就先要找到出错误的JAVA代码,点击就可以,如图:

第三步,定位到java代码后,在debug启动项目,并添加断点,怎么启动debug:http://jingyan.baidu.com/article/19020a0a65e142529c284241.html

第四步,继续第一步的地址,在debug的模式下可以看到此字段的值是Null, 如图:

第五步,输入正确的productId,如正确的链接是:http://localhost:8083/***/***/***/***?productId=47681438955545,如图,debug模式下此字段就不是null,如图:

第六步,如果没有其他错误的话,此时页面也应该打开了

到此这篇关于详解Java中NullPointerException异常的原因和解决办法的文章就介绍到这了,更多相关Java NullPointerException异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- Java空指针异常NullPointerException的原因与解决方案
- 解决java.lang.NullPointerException问题(空指针异常)
- Java如何优雅地避免空指针异常(NullPointerException)
- Java中redisTemplate注入失败NullPointerException异常问题解决
- java.lang.NullPointerException异常问题解决方案
- 详解Java中NullPointerException异常的原因详解以及解决方法
- java.lang.NullPointerException 如何处理空指针异常的实现
- Java中NullPointerException的异常解决
相关文章
Java SpringMVC 异常处理SimpleMappingExceptionResolver类详解
这篇文章主要介绍了SpringMVC 异常处理SimpleMappingExceptionResolver类详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下2021-09-09
Java I/O深入学习之File和RandomAccessFile
这篇文章主要介绍了Java I/O深入学习之File和RandomAccessFile, I/O系统即输入/输出系统,对于一门程序语言来说,创建一个好的输入/输出系统并非易事。在充分理解Java I/O系统以便正确地运用之前,我们需要学习相当数量的类。,需要的朋友可以参考下2019-06-06
java中URLencode、URLdecode及Base64加解密转换
本文主要介绍了java中URLencode、URLdecode及Base64加解密转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-01-01


最新评论