小心!你的代码里有NullPointerException!

原创 2016年05月30日 18:23:44

版权声明:本文地址http://blog.csdn.net/caib1109/article/details/51540111
欢迎非商业目的的转载, 作者保留一切权利


NullPointerException作为java程序员最常见的错误, 被亲切地称为NPE.
NPE往往能逃过javac的编译期间的语法检查, 在程序运行时才发生. 因此, 运行程序前, NPE很难被检查出来, 危害极大.

我个人总结了最容易发生NPE的几种情况, 编译过程都不会报错, 因此需要特别注意:

NPE原因 发生频率(0-10) 危险程度(0-10) 解决方案 备注
field不赋值, 却在方法中被使用 6 3 对未赋值的field变量,使用时判空 但是, 如果方法中的局部变量这样, 编译器会报错.
传参为null 3 9 对参数全部判空 经常发生在把第三方包的返回值直接传进方法
不了解Java原生类的方法, 很容易得到null且不自知 2 5 多看api doc 比如java.util.concurrent.LinkedBlockingQueuetake()方法在Queue为空时返回null, 且不报错.
Spring框架@Autowired修饰static field 1 9 手动添加 static field的static getter/setter 原因是, 被@Autowired修饰的类spring自动生成不带static修饰符的getter/setter, 可能在下个版本修复
List/Set/Map.size() 9 9 x==null ? 0 : x.size()

版权声明:本文地址http://blog.csdn.net/caib1109/article/details/51540111
欢迎非商业目的的转载, 作者保留一切权利

一般报java.lang.NullPointerException的原因有以下几种

一般报java.lang.NullPointerException的原因有以下几种: ·字符串变量未初始化; ·接口类型的对象没有用具体的类初始化,比如: List lt; 会报错 L...
  • zwhfyy
  • zwhfyy
  • 2006年07月06日 16:56
  • 450355

Spring @Autowired注解在非Controller中注入为null

前言好久没写博客了,不知不觉大学已经过去两年了。 时光快似箭,光阴似如梭, 小学时的打油诗, 逃:) 话说回来,今天在写一个工具类,里面用了@Autowired注入了TokenRepository...
  • qq_35056292
  • qq_35056292
  • 2017年11月03日 00:04
  • 1773

@Autowired 对象为null

今天遇到的问题是Spring中使用Autowire的注解注入service,启动过程中debug可以看到proxy对象,但是实际运行中会报NullPointerException。 暴力解决的办法是...
  • leon198442
  • leon198442
  • 2017年06月16日 16:04
  • 2531

实际编写中的注解问题,@Autowired位置写错,报错java.lang.NullPointerException

private CartypeDao ctd; @Autowired public CartypeDao getCtd() { return ctd; } public void setC...
  • qq_34178998
  • qq_34178998
  • 2017年10月10日 11:01
  • 291

小心!你的代码里有NullPointerException!

NullPointerException作为java程序员最常见的错误, 被亲切地称为NPE. NPE往往能逃过javac的编译期间的语法检查, 在程序运行时才发生. 因此, 运行程序前, NPE...
  • caib1109
  • caib1109
  • 2016年05月30日 18:23
  • 589

我的异常-java.lang.NullPointerException

java.lang.NullPointerException,这个异常相信大家一定非常眼熟,相信在每人的程序开发生涯中都遇到过。在这次高校3.1的开发中,这样的错又这样被抛出来了。这是一个小bug,但...
  • chenjinge7
  • chenjinge7
  • 2015年07月24日 07:12
  • 6623

小心NullPointerException

NullPointerException还真是无处不在啊,一不小心就跑出来害的人要调试半天这里有个比较隐蔽的地方需要注意:比如Integer这类对于原生类型的封装,可以在使用原生类型的地方使用它们,它...
  • liliflashfly
  • liliflashfly
  • 2010年10月08日 00:57
  • 428

男人说这几句话代表他不想娶你

这是个人的看法,可以带着趣味方式看,所以不要引起公愤:男人撒谎和男人好色是本性中的一个孪生兄弟!世界上不能相信的三样东西:男人的承诺、男人的感情、男人的理由。男人的话,十句里面九句假话,还有一句要当没...
  • liaoyukun111
  • liaoyukun111
  • 2010年11月30日 14:16
  • 722

NullPointerException 异常记录

如下图,出现了空指针异常:只要利用View实例调用即可消除异常如下图:下图是setContentView( )加载的布局,获得布局控件实例的方式可以是:因此需要获得布局文件中控件的实例时,需要确定加载...
  • walk_silence
  • walk_silence
  • 2016年02月29日 16:04
  • 177

java.lang.NullPointerException 空指针异常问题

1.所谓的指针,就是java中的对象的引用。比如String s;这个s就是指针。  2.所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就是空指针。 3.所谓的空指针异常,...
  • qing101hua
  • qing101hua
  • 2015年05月03日 15:28
  • 56568
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:小心!你的代码里有NullPointerException!
举报原因:
原因补充:

(最多只允许输入30个字)