关闭

小心!你的代码里有NullPointerException!

标签: javaNPE空指针异常
512人阅读 评论(0) 收藏 举报
分类:

版权声明:本文地址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
欢迎非商业目的的转载, 作者保留一切权利

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:297889次
    • 积分:4280
    • 等级:
    • 排名:第7551名
    • 原创:125篇
    • 转载:64篇
    • 译文:7篇
    • 评论:36条
    最新评论