关于项目中遇到的NullPointerException异常时处理手段

时间:2021-09-17 07:47:41

在项目开发中,经常会遇到NullPointerException异常,特别是一些新手,非常的郁闷,有时候会很隐蔽,特别是不同的人书写的代码进行调用时。

以下是我所遇到的NullPointerException异常情景:

问题:

1、循环List时,如:

for(int i = 0,size = list.size();i < size;i ++){
dosomething....
}

2、比较字符串时,如:

if(str.equals("test")){
dosomething....
}

3、调用对象的方法时,如

System.out.println(str.toString());

解决方案:

1、对于这个问题,要不在使用之前判断其是否是非空,如:

if(list != null){
for(int i = 0,size = list.size();i < size;i ++){
dosomething....
}
}

要么返回的List对象大小为0的List,如:

list = Collections.emptyList();

2、对于这个问题,要么是在使用之前判断其是否为非空,如:

if(str != null && str.equals("test")){
dosomething....
}

要么是左边是已知的字符串,如:

if("test".equals(str)){
dosomething....
}

3、对于这个问题,若是使用toString()方法,可以这样,如:

System.out.println(String.valueOf(str));

即使该对象为null,但是其调用之后输出的字符串"null",也不会发生异常;

若是调用其它的方法,则需要判断其是否为空,当然若你知道肯定不为空,则不必,若连你自己都无法确定是否非空,则必须要判断一下。