当前位置: 首页 > 知识库问答 >
问题:

Java 8可选:在两个可能为空的值之间进行选择

蒋嘉实
2023-03-14

我必须在两个字符串变量中进行选择--第一个具有非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())

共有1个答案

侯令雪
2023-03-14
String target = Optional.ofNullable(value1).orElse(value2)

如果value1==null,则返回value2-该值或为null。不需要通过将value2==null映射为null来显式处理它。

 类似资料:
  • 下面是我的代码,按预期工作。但我需要用Optional.ofNullable替换它 如何使用

  • 我必须确保两个值是否为非空值。当first和second具有非空值时,将first作为参数传递给second。如果其中一个为空值,则返回false。这可以在下面的一段代码中完成: 也可以用简短的形式完成: 我想知道如何用可选的流利的形式来做这件事。

  • 问题内容: 我正在尝试在2列之间选择一个值。这是我的数据集 我的目标是(如果我的值为2)是选择 ID为1 (在from和to之间)的行。所以这是我正在使用的查询: 这是MySQL执行此查询时返回的结果: 我正在寻找的结果如下: 我尝试使用<和>等。但是,我总是得到两个结果。任何帮助将非常感激。 问题答案: 所以,您不希望下限具有包容性,对吗?

  • 我试图模拟一个对象,该对象返回一个带有Mockito的Java可选对象: 当被调用,它返回。 我希望方法返回 返回的任何原因? 方法如下: 以下是Junit:

  • 问题内容: 我从csv创建一个DataFrame,如下所示: DataFrame有一个日期列。有没有一种方法来创建一个新的DataFrame(或仅覆盖现有的DataFrame),该DataFrame仅包含日期值在指定日期范围内或两个指定日期值之间的行? 问题答案: 有两种可能的解决方案: 使用布尔型掩码,然后使用 将日期列设置为,然后使用 使用布尔型掩码: 确保是系列: 制作一个布尔型面具。可以,