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

将此null检查转换为java 8可选

发布时间:2020-12-15 08:27:46 所属栏目:Java 来源:网络整理
导读:我无法理解如何使用 Java 8 Optional删除下面的空检查 for (A objA : listOfObjectsA) { if (objA.getStringField() == null) continue; // some code to do if not null} 解决方法 如果“某些代码如果不为null”只对objA.getStringField()进行操作,那么你可
我无法理解如何使用 Java 8 Optional删除下面的空检查

for (A objA : listOfObjectsA) {
    if (objA.getStringField() == null) continue;
        // some code to do if not null
}

解决方法

如果“某些代码如果不为null”只对objA.getStringField()进行操作,那么你可以这样做:

listOfObjectsA.stream()
              .map(A::getStringField)
              .filter(Objects::nonNull)
              .forEach(e -> ...);

但是,如果您仍然想要访问A元素,那么正如其他答案所示,您别无选择,只能执行显式的objA.getStringField()!= null:

listOfObjectsA.stream()
              .filter(a -> a.getStringField() != null)
              .forEach(a -> ...);

(编辑:李大同)

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

    推荐文章
      热点阅读