java常见的NullPointerException

各位开发小伙伴相信对NullPointerException并不陌生了,这应该是我们见过最多的报错了,下面我们就来说说一些常见的场景并怎么防止空指针的发生。

String发生空指针

当我们使用一个null去调用string的方法时,自然会报空指针,比如:

String a = "1";
String b = null;
System.out.println(a.equals(b));
System.out.println(b.equals(a));

当我们使用"1".equals(null)时,不会出现空指针的情况,但是当null.equals(“1”)时,就会出现空指针,此时就是使用一个null去调用string的方法。

解决方法

1.当我们使用string方法并不能保证此对象非null的情况下,我们需要进行非空判断,可以使用StringUtils.isNotBlank()或StringUtils.isNotEmpty()进行判断。
注:isNotBlank会将空字符过滤,如果字符串中都是空字符则此结果为false。
2.可以使用一些工具类进行处理,如进行equals比较时可以使用Objects.equals()
进行比较
Objects.equals
通过源码可以看出,在工具类内已经帮我们做好了非空判断
3.使用Optional.ofNullable()控制可能为空的对象,将此对象重新实例化。

List发生空指针

list常见发生空指针的情况与string类似,用一个空对象去调用方法如:

List<String> list = null;
list.add("1");

同样是使用了null去调用方法,此时也会出现空指针的异常

解决方法

1.当我们不能保证list对象为非null的情况,可以使用CollectionUtils.isNotEmpty()来进行非空判断,用法与StringUtils.isNotBlank()类似。
2.使用Optional.ofNullable()控制可能为空的对象,将此对象重新实例化。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值