小心!你的代码里有NullPointerException!

版权声明:本文地址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 NPE 空指针异常
个人分类: java
上一篇apache基金会软件宝库鉴赏(草稿)
下一篇mysql, PostgreSQL,Oracle对比——sql,驱动和数据库URL
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭