You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Optional替代null判断实现myClass到myClass2的字段赋值?

实现代码

你可以直接用Optional.ofNullable结合ifPresent实现完全等价于原有逻辑的写法,代码如下:

Optional.ofNullable(myClass)
    .ifPresent(existMyClass -> {
        myClass2.setId(existMyClass.getId());
        myClass2.setName(existMyClass.getName());
        myClass2.setPosition(existMyClass.getPosition());
    });
逻辑说明
  • 上述代码和你原有的if判空逻辑完全一致:只有当myClass不为null时,才会执行大括号内的字段赋值操作
  • 如果你使用的是Java 9+,还可以配合ifPresentOrElse扩展为空时的分支逻辑,不需要额外写if-else判断
  • 如果需要进一步对myClass的单个字段做非空校验,也可以在lambda内部继续使用Optional嵌套处理,和原有写法的扩展性一致

小提示:如果只是简单的非空执行单逻辑,原生if判空的可读性也不差,Optional更适合需要链式处理非空逻辑、避免多层嵌套判空的场景。

内容的提问来源于stack exchange,提问作者user13034249

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:15:04