您的位置 首页 java

什么样的空指针能让初学者叫苦不迭

作为程序员, java . lang .NullPointerException,一个常见而又麻烦的运行时异常,很多业务场景下还不能依赖异常捕获处理,这就使得很多刚入门的猿员们叫苦不迭。

今天,一同事满脸愁容的找我,说赶紧帮我看看吧,这个空指针折磨我一天了。看了代码后让我哭笑不得,各位看官一起看看。(为了保护公司代码,我写了个简易的demo。前提是个spring工程)

他说,我ab都传的是非空的值,为什么还会报空指针。

好吧,碰上了就具体说说吧,今天我们就看看一般引起空指针的原因,然后再解决这个问题。

1、一个对象为null,但又调用了它的方法。

这个情况是最多的,也是最常见的。通常我们查询数据库获的的bean,或者通过接口传参的对象,都有可能是null。这个时候如果直接调用对象的方法就会出现久违的空指针异常。

这种错更常见的是在判断 字符串 是否相等的时候

2、一个方法接受的是基本类型,传的参数却是封装类的null对象

读起来挺拗口,看个例子。

空指针报在了15行,也就是int add = Test.add(arg0, arg1);

Java中,是可以这么传参的,但是这种方法再调用的时候必须保证所传的参数不能为空,否则就会出现空指针异常。

空指针异常通常来说不是什么大不了的错误,在测试的时候一般还是可以发现的,但是编码的时候必须周全的考虑到空指针的情况,从而避免类似情况的发生。

我的同事所犯是错误其实就是第一种,他用了spring的@Autowired注解就以为userService已经注入了进来。其实这个类都没有被Spring所管理,再加上调用时是通过new出来的对象,导致userService根本没有注入,也就导致了空指针异常,还真是个磨人的小妖精。

欢迎看官们补充其他的情况。

文章来源:智云一二三科技

文章标题:什么样的空指针能让初学者叫苦不迭

文章地址:https://www.zhihuclub.com/191068.shtml

关于作者: 智云科技

热门文章

网站地图