java.lang.NullPointerException出现的⼏种原因及解决⽅案
java.lang.NullPointerException出现的⼏种原因:
1、字符串变量未初始化
2、接⼝类型的对象没有⽤具体的类初始化,⽐如:
Map map // 会报错
Map map = new Map(); //则不会报错了
3、当⼀个对象的值为空时,你没有判断为空的情况。
4、字符串与⽂字的⽐较,⽂字可以是⼀个字符串或Enum的元素,如下会出现异常
java valueofString str = null;
if(str.equals(“Test”)){
//这⾥的代码将不会被触发,因为会抛出java.lang.NullPointerException异常。
}
5、优先使⽤String.valueOf()⽅法代替toString()
当程序代码需要对象的字符串表⽰形式时,请避免使⽤该对象的toString⽅法。如果你的对象的引⽤等于null,NullPointerException则会抛出,使⽤静态String.valueOf⽅法,该⽅法不会抛出任何异常并打印"null"
6、class被声明了类型,默认 class = null; 这样在调⽤class中⽅法的时候系统只能给你个空指针异常,给其实例化就好了:class = new Class();
7、返回null,⽅法的返回值不要定义成为⼀般的类型,⽽是⽤数组。这样如果想要返回null的时候就能避免许多不必要的NullPointerException
总之,NullPointerException由RuntimeException派⽣出来,是⼀个运⾏时异常。其意指可能会在运⾏的时候才会被抛出,⼀个变量是null,及只有其名,没有实值内容,也没分配内存,当你要去取他的长度,对他进⾏操作就会出现NullPointException,所以声明变量时最好给它分配好内存空间,给予赋值,例如拿该变量与⼀个值⽐较时,要么先做好该异常的处理要么给它进⾏判断先:if (str !=null && str “”){ …}
判断⼀个String的实例s是否等于“a”时,不要写成s.equals(“a”),这样容易抛NullPointerException,⽽写成"a".equals(s)就可以避免这个问题,不过对变量先进⾏判空后再进⾏操作更好,尽量避免返回null,⽅法的返回值不要定义成为⼀般的类型,⽤数组。这样如果想要返回null的时候,就返回⼀个没有元素的数组。就能避免许多不必要的NullPointerException
下图为异常分布图:
总结
到此这篇关于java.lang.NullPointerException出现的⼏种原因及解决⽅案的⽂章就介绍到这了,更多相关java.lang.NullPointerException内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。