加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在“for”语句中避免空指针异常

发布时间:2020-12-15 05:17:52 所属栏目:Java 来源:网络整理
导读:在我的代码中,当List为null时,我通常使用这种方法来避免for语句中的NullPointerExceptions: if (myList != null myList.size() 0) { for ( MyObj obj : myList ) { System.out.println("MyObjStr: "+obj); }} 是否有其他方法可以在不写“if”语句的情况下执
在我的代码中,当List为null时,我通常使用这种方法来避免for语句中的NullPointerExceptions:

if (myList != null && myList.size() > 0) {
    for ( MyObj obj : myList ) {
        System.out.println("MyObjStr: "+obj);
    }
}

是否有其他方法可以在不写“if”语句的情况下执行相同操作,但使用相同的“for”语句?

解决方法

你不想只是“避免NPE”. NPE是一种注意编程错误的好方法,因此您必须小心需要进行空检查的内容.许多程序员在防御性的地方放置无效检查,因为他们不再相信API合同.

>如果你有一个没有理由为null的NPE,那么你之前做错了(这里是因为你的集合没有被初始化).你不想隐藏它,你希望它在你脸上爆炸,所以你可以立即修复它(快速失败原则).
>如果null是变量的可能(且有意义)值(或者如果值来自外部源),则需要对其进行空检查.但是,您必须处理这种情况,不要只是跳过产生NPE的代码.如果你只是跳过它,那么后来的代码并不比当前的代码更安全,并且对于同一个变量将再次需要进行空检查.

@ifLoop提供了一个关于这个主题的另一篇文章的非常好的链接,所以我在这里复制它,因为我的答案被接受了:
Avoiding “!= null” statements in Java?

附注:循环不需要进行尺寸检查.如果集合为空,则只会跳过循环.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读