首页 > 解决方案 > 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()

标签: javajava-8optional

解决方案


String target = Optional.ofNullable(value1).orElse(value2)

如果value1 == null,则返回value2- 有值或为空。无需value2 == null通过将其映射到 null 来显式处理这种情况。


推荐阅读