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

Java中的链接选项8

陆信瑞
2023-03-14

寻找链接选项的方法,以便返回出现的第一个选项。如果不存在optional.empty()

假设我有几个这样的方法

Optional<String> find1()

我想把他们锁起来:

Optional<String> result = find1().orElse( this::find2 ).orElse( this::find3 );

但这当然不起作用,因为orelse需要一个值,而orelseget需要一个supplier

共有1个答案

祁俊喆
2023-03-14

使用流:

Stream.of(find1(), find2(), find3())
    .filter(Optional::isPresent)
    .map(Optional::get)
    .findFirst();

如果您需要懒洋洋地评估find方法,请使用供应商函数:

Stream.of(this::find1, this::find2, this::find3)
    .map(Supplier::get)
    .filter(Optional::isPresent)
    .map(Optional::get)
    .findFirst();
 类似资料:
  • 我有以下类和一个名为ResultUtils的Utils类。 Utils方法之一计算分包商的最近一个营业年度。此方法必须返回可选的Double,因为可能是在本年度新添加了一个分包商。所以它没有过去两年的统计数据。如果一个分包商是在一年前添加的,那么它有上一个营业年度的统计数据,但没有倒数第二个营业年度的统计数据。 我的问题是正确链接getLatestResult方法。在我的示例中,ifPresent

  • 我在一个Android Live壁纸应用程序中有如下偏好。(这些是复选框)。我想添加一个链接到一个Facebook页面到这个列表。在网上查看Android PreferenceCategory,我没有看到任何类似“LinkPreference”或“ButtonPreference”的东西,但话说回来,链接或按钮并不是真正的首选,所以也许我想把一个方形的钉子放在一个圆孔里。这可能吗?如果可能,如何可

  • 问题内容: 我最近在Swift中进行了大量编程。今天,当出现问题时,我在JavaScipt中做了一些工作: 是否有类似于JavaScript中的可选链接的内容?一种防止没有任何变量的方法? 例: 将失败一半的时间,因为有时返回未定义。 我能想到的唯一解决方案是一个函数: 我希望能够执行以下操作: 仅在返回对象后才执行问号后的部分。 但这不是很精巧。有更好的东西吗?运营商的神奇组合? 编辑 我知道我

  • 问题内容: 我正在使用AngularUI路由器,并且试图建立嵌套/子链接。 一切正常,但是如何在“联系人”选项卡中选择/激活链接? 基本上,我需要能够在加载“联系人”页面时选择/激活一个联系人链接。当前,由于某些原因,除非我单击链接,否则它不会阅读。 柱塞:http ://plnkr.co/edit/DWjp5M6kJt2MyBrasfaQ?p=preview 问题答案: 有一种更快的方法可以做到

  • 问题内容: 在回答前面的一些问题以及最近的工作时,我一直在想为什么Java不支持其内置类中的方法链接。 例如,如果我要创建一个类,可以通过以下方法而不是void来使其 可链接: 内置库为什么不倾向于以这种方式执行操作?方法链接有不利之处吗? 我可能忽略了一些可以解释缺少方法链接的内容,但是任何默认返回void的setter方法都应该返回 对此 的引用(至少在我看来应该如此)。这样可以使以下情况更加

  • 问题内容: 在回答前面的一些问题以及最近的工作时,我一直在想为什么Java不支持其内置类中的方法链接。 例如,如果我要创建一个类,可以通过以下方法而不是void来使其 可链接: 内置库为什么不倾向于以这种方式执行操作?方法链接有不利之处吗? 我可能忽略了一些可以解释缺少方法链接的内容,但是任何默认返回void的setter方法都应该返回 对此 的引用(至少在我看来应该如此)。这样可以使以下情况更加