java.lang.NullPointerException出现的几种原因以及解决


1、字符串变量未初始化
2、接口类型的对象没有用具体的类初始化,比如:

Map map // 会报错
Map map = new Map(); //则不会报错了

3、当一个对象的值为空时,你没有判断为空的情况。
4、字符串与文字的比较,文字可以是一个字符串或Enum的元素,如下会出现异常

String 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

异常报错原因及解决方案相关推荐

  1. JS Uncaught SyntaxError:Unexpected identifier异常报错原因及其解决方法

    最近在写ajax的时候,调用js方法,遇到了Uncaught SyntaxError:Unexpected identifier异常报错,开始搞不清原因,很苦恼. 以为是js方法参数个数和长度的问题, ...

  2. oracle 01405 提取的值为null,ORA-01405: 提取的列值为 NULL--报错原因及解决方案

    报错信息:ORA-01405: 提取的列值为 NULL 问题出现原因:形如 SELECT a INTO :a FROM NewXCData WHERE a = 'test'; 如果a的值为空,则会报此 ...

  3. TypeError: fullscreen error at HTMLInputElement.toggleFullscreen 报错原因与解决方案

    在使用iframe进行内容嵌套时候,如果内层页面有全屏的功能,点击内层全屏功能,就可能出现上述报错. 原因: iframe是有一个默认的属性allowfullscreen,默认值为false,默认不支 ...

  4. 微信小程序 - Setting data field “xxx“ to undefined is invalid.报错原因及解决方案

    前言 ## 完整报错(SEO) ## 翻译: 将数据字段"XXX"设置为未定义是无效的. Setting data field "xxx" to undefin ...

  5. 出现Unexpected token u in JSON at position 0 报错原因及解决方案

    出现问题的原因基本就是使用了JSON.parse(data) JSON中的值不能是undefined 这里面的    data   不能是   undefined类型,如果是undefined,指定会 ...

  6. Uncaught RangeError: Maximum call stack size exceeded 报错原因及解决方案

    使用谷歌localhost运行时候页面崩溃,显示链接超时,找了错误好久也上网上查了好久都没有找到错误的来源,再次检查的时候发现自己真的是很搞笑.错误如图 改错之前: 改错之后: 错误不是无缘无故就发生 ...

  7. mtk一键usb驱动_三菱MRJEB驱动器报错,导致报错原因37.1参数设置范围异常?

    三菱MR-JE-B驱动器报错,导致报错原因37.1参数设置范围异常?最近海蓝机电工程师们在做一个项目,做的是三菱MR-JE-B驱动器.工程师们在实操这个项目过程中遇到各种问题,其中就像驱动器报错的问题 ...

  8. 第三次学JAVA再学不好就吃翔(part79)--并发修改异常产生的原因及解决方案

    学习笔记,仅供参考,有错必纠 文章目录 集合 并发修改异常产生的原因及解决方案 ConcurrentModificationException 解决方案 集合 并发修改异常产生的原因及解决方案 在这个 ...

  9. jenkin构建报错信息及解决方案

    报错信息1:Exception when publishing, exception message 最近一直在做Jenkins项目,也经常会出现一些报错信息,今天在测试的时候出现了下面的报错信息,所 ...

最新文章

  1. [高数][高昆轮][高等数学上][第二章-导数与微分]01.导数的定义
  2. rn+与android+交互,React native 与Android原生交互方式(一)
  3. 5 加盐_工业软水处理器定期加盐的标准
  4. 注销linux/solaris桌面的命令
  5. iPhone、iPad的图片可以同一个名字
  6. PMP 第七章 项目成本管理
  7. java 多线程跑数据_java——多线程的实现方式、三种办法解决线程赛跑、多线程数据同步(synchronized)、死锁...
  8. 中止执行后超过2年_10年后超过美国!汪涛:中国GDP将达到28万亿美元
  9. Intellij IDEA如何打包jar文件?
  10. 一个高效的敏感词过滤方法(PHP)
  11. Javascript Prototype污染攻击(原型链污染,Bugku-web-sodirty wp)
  12. Python基础刻意练习:魔方方法
  13. 520|使用Python花式表白的六种姿势
  14. datatable单元格内容过长显示省略号,单击弹出所有内容
  15. springmvc下载excel模板示例代码
  16. (转)iOS6和Xcode4.5初体验-图多杀猫
  17. java小游戏-扫雷游戏
  18. 22考研:考取985、211名校的忠告!
  19. 通过yum获取rpm离线安装包
  20. 10个设计最经典的web2.0网站

热门文章

  1. MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录
  2. HTML中tabIndex属性马克 tabIndex='-1'是什么意思
  3. 台式计算机如何双屏显示,一个电脑主机怎样接两个显示器_一个电脑连接两个显示器如何操作-win7之家...
  4. c语言char s[] 语句,35、若有定义和语句: char s[10]=abcd;printf(%s\n,s); 则结果是(以下u代表空格)...
  5. Docker——Tomcat部署
  6. Z-Blog 添加收藏本站
  7. 点击密码框显示密码(点击密码框小眼睛可显示输入密码)
  8. JavaScript中的ReferenceError和TypeError两种错误的区别
  9. 微信小程序使用百度地图api
  10. Flink-DataStream快速上手