本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接
Debug 笔记 <Java.lang.NullPointerException问题>
在Java中,null 作为一个特殊值被对象引用,用来表示该对象当前指向的是一块未知内存数据。
然而程序中的NullPointerException这个异常代码提示,则是程序在使用或访问一个对象的引用时,而该对象等于null则该错误就会被抛出。
产生Java.lang.NullPointerException这个问题的原因主要有以下几个方面:
1.字符串变量未初始化。
2.接口类型的对象没有用具体的类初始化
常见的错误有:
List stuList;这种情况就会报空指针异常;List stuList = new ArrayList();这样初始化后就不会报错了。
3.当一个对象的值为空时,而你没有判断为空的情况,也会报空指针异常;
所以遇到这种情况,要想代码运行正确,可以在代码前加个判断,比如: if(ObjId != null);
String类型对象可以做个如下判断:
if(objectStr !==null && !“”.equals(objectStr))
我们还可以多做个一个判断,是否不为空字符串:
if(objectStr !==null && !“”.equals(objectStr.trim()))
4.优先使用String.valueOf()方法代替toString()
当程序代码需要对象的字符串表示形式时,可以避免使用该对象的toString方法。如果程序代码对象的引用等于null,NullPointerException错误则会抛出。使用静态String.valueOf方法,该方法不会抛出任何异常并打印null
5.使用三元运算符
我们通过三元运算符的表达式可以知道
boolean expression ? value1 : value2;
如果expression表达式结果为true,则返回value1,否则返回value2。
我们可以使用三元运算符来处理空指针,有效的避免Java.lang.NullPointerException问题。