志在指尖
用双手敲打未来

java.lang.nullpointerexception(原因分析及解决办法)

java.lang.nullpointerexception

java.lang.NullPointerException呈现的几种原因:
1、字符串变量未初始化
2、接口类型的目标没有用详细的类初始化,比如:
Mapmap//会报错
Mapmap=newMap();//则不会报错了
3、当一个目标的值为空时,你没有判别为空的状况。
4、字符串与文字的比较,文字可所以一个字符串或Enum的元素,如下会呈现反常
Stringstr=null;
if(str.equals(“Test”)){
//这儿的代码将不会被触发,因为会抛出java.lang.NullPointerException反常。
}
5、优先使用String.valueOf()办法替代toString()
当程序代码需求目标的字符串表示形式时,请防止使用该目标的toString办法。如果你的目标的引证等于null,NullPointerException则会抛出,使用静态String.valueOf办法,该办法不会抛出任何反常并打印”null”
6、class被声明了类型,默认class=null;这样在调用class中办法的时分体系只能给你个空指针反常,给其实例化就好了:class=newClass();
7、回来null,办法的回来值不要界说成为一般的类型,而是用数组。这样如果想要回来null的时分就能防止许多不必要的NullPointerException
总归,NullPointerException由RuntimeException派生出来,是一个运转时反常。其意指或许会在运转的时分才会被抛出,一个变量是null,及只要其名,没有实值内容,也没分配内存,当你要去取他的长度,对他进行操作就会呈现NullPointException,所以声明变量时最好给它分配好内存空间,给予赋值,例如拿该变量与一个值比较时,要么先做好该反常的处理要么给它进行判别先:if(str!=null&&str“”){…}
判别一个String的实例s是否等于“a”时,不要写成s.equals(“a”),这样容易抛NullPointerException,而写成”a”.equals(s)就可以防止这个问题,不过对变量先进行判空后再进行操作更好,尽量防止回来null,办法的回来值不要界说成为一般的类型,用数组。这样如果想要回来null的时分,就回来一个没有元素的数组。就能防止许多不必要的NullPointerExceptionjava

java.lang.nullpointerexception原因分析及解决办法

一般报java.lang.NullPointerException的原因有以下几种:
1.类没有初始化,例如定义了个String,List,Map等目标没有初始化就直接使用,肯定会出空指针错误,正确初始化如下:
Stringstr=””;
Listlist=newArrayList();
Mapmap=newHashMap();
2.当一个目标的值为空时,你没有判别为空的情况。
你能够试着把下面的代码前加一行代码:
if(rb!=null&&rb!=””)
改成:
if(rb==null);
if(rb!==null&&!””.equals(rb))
当然还能够多做一个判别,是否不为空字符串
if(rb!==null&&!””.equals(rb.trim()))
判别字符串是否为空在java中比较好的写法是
if(rb!=null&&!””.equals(rb.trim()))
3.在使用框架,例如Spring的时分成员目标是经过注入进来的,需求注意一下两点:
1)成员变量必须有getset方法
2)必须在配置文件中把实例化好的目标注入进来

未经允许不得转载:IT技术网站 » java.lang.nullpointerexception(原因分析及解决办法)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载