使用 lambda 内联过滤避免意外 null

2024-04-30

我有每个元素的列表,我想这样做(使用Java 8):

disabledUsersOnLDAP.stream().forEach(user -> usersRepository
                .findEnabledByUsername(user.getUserName()).setEnabled(false));

然而usersRepository.findEnabledByUsername可能会回来null.

当然我可以这样做:

disabledUsersOnLDAP.stream().forEach(user -> {
    UserEntity userEntity = usersRepository.findEnabledByUsername(user.getUserName()); 
    {
        if (userEntity != null) {
            userEntity.setEnabled(false);
        }
    }
});

但我想知道我是否可以做到null检查内联(在第一个选项中)?


您可以在运行之前进行映射+过滤forEach部分,这也使它更具可读性:

disabledUsersOnLDAP.stream()
            .map(user -> usersRepository.findEnabledByUsername(user.getUserName()))
            .filter(userEntity -> userEntity != null)
            .forEach(userEntity -> userEntity.setEnabled(false));

或者作为替代方案:

disabledUsersOnLDAP.stream()
            .map(User::getUsername)
            .map(usersRepository::findEnabledByUsername)
            .filter(Objects::nonNull)
            .forEach(userEntity -> userEntity.setEnabled(false));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 lambda 内联过滤避免意外 null 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • iOS 全屏 Web 应用程序会丢弃 cookie?

    我经历过 当您启动 退出保存到仪表板 全屏模式 的网络应用程序时 iOS4 会丢弃 cookie 这是真的吗 有解决方法吗 这不是一个错误 这是一个功能 会话 cookie 即生命周期为 0 的 cookie 会在浏览器会话结束时被删除 在
  • Ruby 中类单例方法的方法查找

    我的印象是obj method导致 ruby 寻找method thusly Look in obj的单例类 查看包含的模块obj的单例类 Look in obj的班级 查看包含的模块obj s class 对类的超类重复步骤 3 和 4
  • 如果执行 shell 失败,jenkins 构建不会失败

    作为构建过程的一部分 我运行 git commit 作为执行 shell 步骤 但是 如果工作区中没有任何更改 Jenkins 将导致构建失败 这是因为当没有要提交的更改时 git 返回错误代码 如果是这种情况 我想要么中止构建 要么将其标
  • 如何在透明背景图像后面添加背景颜色?

    我试图在透明背景图像后面添加背景颜色 但它不起作用 我希望它位于名为 标题 的 div 中 我尝试先使用 png 文件 然后使用 gif 文件 我以为所有的 gif 都是透明图像 任何帮助 将不胜感激 heading background
  • 如何使用 NSHost 获取外部 IP 地址?

    我试图找到我的外部 IP 地址 但我只能找到位于 NAT 后面的本地 IP 地址 NSArray addresses NSHost currentHost addresses 有没有办法打印出公共地址 使用 NSHost 是个好主意吗 可能
  • 作为属性的自定义类的数组

    我试图使用自定义类的数组作为我的组件的属性 但问题是这些值没有保存到组件中 这意味着如果我设置值 保存所有内容并再次打开项目 组件的值消失 我的代码如下所示 unit Unit1 interface uses Windows ExtCtrl
  • 在C#中创建对象而不使用new关键字? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有没有一种方法可以在 C 中不使用
  • 如何在 Ubuntu 10.04 上使用 PostgreSQL 8.4.4 生成 uuid?

    我正在 Ubuntu 10 04 上运行 PostgreSQL 8 4 4 我正在尝试生成 uuid 但找不到方法 我确实有 uuid ossp sql usr share postgresql 8 4 contrib uuid ossp
  • 如何在 Angular 5 中执行缓存 http get 请求?

    import Injectable from angular core import HttpClient HttpErrorResponse from angular common http import Observable from
  • Node.js 管理频繁变化的本地依赖项

    我目前正在开发我的第一个较大的 Node js 应用程序 该应用程序应该使用类似插件的依赖项尽可能模块化地工作 因为我处于开发的早期阶段 而且对节点也很陌生 所以这涉及大量的试验和错误 因此我需要经常重新启动应用程序 因此启动时间应尽可能短
  • Global.asax 模板在 Visual Studio 中不可用

    当我尝试向我的网络项目 添加新项目 通过右键单击 添加新项目 时 没有适合它的模板 可能是什么问题 我用的是VS2008 附加信息 当我右键单击解决方案并 添加 新网站 时 我有零个模板可供选择 我尝试过跑步devenv installvs
  • Windows Phone 8.1 XAML 应用程序显示奇怪的版本

    我已经为我现有的应用程序之一创建了 Windows Phone 8 1 XAML 版本 我将包版本设置为1 5 0 0 创建的文件名为SlovakApps WindowsPhone 1 5 0 1 AnyCPU bundle appxupl
  • 返回“数据”可能会暴露内部数组?

    考虑一下这个 public class Data private final SomeField fields public SomeField getFields return map null null map clone 安全性 方法
  • Firebase 数据库 - 编码错误

    我是 Firebase 的新手 我想使用他们的数据库 但编码似乎存在一些问题 这是我使用 UTF 8 编码的示例 json Stack This is madness Overflow 666 这就是当我将 json 导入 Firebase
  • 如何使用 pyodbc 和 MS-Access 在 Python Cursor.execute 中查看真实的 SQL 查询

    我在 Python 中使用以下代码 使用 pyodbc 作为 MS Access 基础 cursor execute select a from tbl where b and c x y 没关系 但是出于维护目的 我需要知道发送到数据库的
  • 如何更改水晶报表文件上的数据源类型

    是否可以更改水晶报表文件上的数据源类型而无需重建整个报表 我知道我可以转到 数据库 设置数据源位置 并更改一些数据源定义 例如服务器名 登录名 密码 但是我需要做什么才能从 ODBC RDO 数据源类型更改为 OLEDB 我已经尝试向报表添
  • Vue.js 路由器 - 条件组件渲染

    routes path name home get component if Vue loggedIn return Home else return Login 我添加了一个吸气剂 似乎工作正常 但我在 if 语句中使用的任何变量或函数都
  • jquery 陷印只允许字母

    我正在创建一个网页 其中有一个输入文本字段 我只想在其中只允许输入字母表 我怎样才能使用 jQuery 来实现它 Thanks jquery inputmask http plugins jquery com project inputma
  • swfobject.embedSWF 不起作用?

    以下代码使用 SWFObject 将 Flash 动画嵌入到 HTML 文档中 仅显示替代内容 为什么
  • 使用 lambda 内联过滤避免意外 null

    我有每个元素的列表 我想这样做 使用Java 8 disabledUsersOnLDAP stream forEach user gt usersRepository findEnabledByUsername user getUserNa