在Java开发中,特别是初学者,在写代码的过程中,经常会遇到 如下图所示的“Exception in thread "main" java.lang.NullPointerException”异常:
出现这种情况的时候,不少没有项目开发经验的programmer就会开始慌了,其实大可不必惊慌,只要找到报空指针异常的地方,逐一排除就能解决问题。
下面就结合我自身的编程经验,列举出几种关于出现Java空指针异常的情况:
1.字符串变量未初始化
比如:
在定义字符串变量的时候,
String s; //或者String s = null;
System.out.println(s.length()); //报空指针异常
因为对象s为空,调用了其方法,连对象都没有,更不要谈方法了。
2.接口类型的对象没有用具体的类进行初始化
List list ; //报空指针异常
List list = new ArrayList(); //不会报空指针异常
如果要在后面使用list, 必须先将其初始化。
解决方案:
为了减少空指针异常的出现,现在给出如下解决办法:
1.在使用前,对变量进行非空检测
比如:在使用room对象时,先对其进行非空判断if(null==room),在执行其他操作
ClassRoom room =map.get(no);
if(null==room){
room =new ClassRoom(no);
map.put(no, room);
}
2.在写代码的过程中,尽量避免返回空值(null),如果返回值中可能存在空值的情况,可以将方法的返回值定义为数组。
当想要返回空值null时,就会返回一个没有元素的数组。
个人总结,肯定不完整,希望大家补充。谢谢