java - Java 8 可选:在两个可能为空的值之间进行选择
问题描述
我必须在两个字符串变量之间进行选择——第一个没有null
价值。如果它们都是null
- 那么我想退出该方法。这可以在以下代码中完成:
String value1 = <get from somewhere>
String value2 = <get from somewhere else>
String target = null;
if (value1 != null) target = value1;
else if (value2 != null) target = value2;
if (target == null) return null;
它也可以以简短的形式完成:
String target = value1 != null ? value1 : value2 != null ? value2 : null;
if (target == null) return null;
我正在努力解决如何以流利的形式使用Optional
注意:我只能使用 Java 8 语法(所以不能Optional.or()
)
解决方案
String target = Optional.ofNullable(value1).orElse(value2)
如果value1 == null
,则返回value2
- 有值或为空。无需value2 == null
通过将其映射到 null 来显式处理这种情况。
推荐阅读
- bash - 在单独的分离会话中从文件运行命令
- python - 使用 python 的 Pcap 解析器
- tensorflow - TensorRT 权重顺序与 Tensorflow [H,W,IN_C,OUT_C] 的比较
- unix - 从 z/OS UNIX 系统服务 (USS) 文件系统下载二进制文件
- keyboard - 如何在颤动中向键盘类型添加+符号
- join - 关系代数斯坦福拉古尼塔斯在线课程测验
- facebook - 将 Facebook 页面与 Smooch 的帐户试用链接
- javascript - 以最少的重新编译/处理将 JS 依赖项添加到纯 HTML 5 项目
- python - 绘制按时间戳分组的数据帧的计数
- javascript - 检索 addEventListener 回答的表单或按钮的 ID。