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

如何以更好的方式用可选重写空检查

越英韶
2023-03-14

我有一小段代码。我想用更好的方式写它,用更少的嵌套支票。我怎样才能实现呢?

Item item = itemResponse.getItem();
Optional<Item> optionalItem = Optional.ofNullable(item);
if (optionalItem.isPresent()) {
    List<NameValue> listValues = item.getValues();
    Optional<List<NameValue>> optionalListValues = Optional.ofNullable(listValues);
    if (optionalListValues.isPresent()) {
        System.out.println(listValues);
    }
}

有没有什么简洁的方法可以让我用Java 8重写上面的代码呢?

共有1个答案

伯英锐
2023-03-14

您可以使ItemResponse.GetItem()类返回可选 并使用链接映射方法,该方法仅在可选有值时才执行,并且如果map方法返回非空值,则仅执行最终的ifPresent(Consumer Consumer)

Optional<Item> item = itemResponse.getItem()

item.map(item::getValues)
    .ifPresent(System.out::println);
 类似资料:
  • 问题内容: 我正在尝试在blob列中编写和更新pdf文档,但是我只能够更新blob,仅写入比先前存储的数据更多的数据。如果尝试使用较小的文档数据更新blob列,则只会得到损坏的pdf。 首先,blob列已使用empty_blob()函数进行了初始化。我在下面编写了示例Java类来测试此行为。我第一次使用“ true”作为 main 方法的第一个参数运行它,因此在第一行中存储了大约31kB的文档,在

  • 我刚从Java7转到8,我的代码中到处都是代码片段,比如 我注意到,空检查有时被认为是一种反模式,而Java8提倡使用可选的。让我的代码看起来像这样有什么好处吗

  • 这是我的true代码,除了空字符串、null和false之外: 这是我的true代码,除了空字符串、null、false或零之外: 我怎么能用Dart写得更短?还是不可能?

  • 我有这样的代码: 我有近10个台阶。它看起来非常脆弱而且容易出错。有更好的方法检查空链接方法吗? 多谢了。

  • 问题内容: 我有这样的代码: 我有将近10个步骤。看起来非常脆弱且容易出错。有没有更好的方法来检查空链方法? 谢谢。 问题答案: 这是Java中引用的常见问题。 我更喜欢与:

  • 回答这个问题:如何使用paintcomponent()初始化GUI,然后根据鼠标添加GUI,我已经说明了以下内容: 您没有正确地重写。这是受保护的方法,不是公共的。如果在此方法上添加注释,那么编译器将会抱怨。 但@Peeskillet明智地指出了这一点: Netbeans完全没有抱怨的图像: