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

无法应用可选的[duplicate]

羊舌涵涤
2023-03-14

给定一个可选包含一个函数 ,我无法通过MAP/FlatMap从可选中应用此函数:

Optional<Function<String, Boolean>> optTestFunction = Optional.of(x -> true);
optTestFunction.flatMap(f -> f.apply("Test")).orElse(false);

IDE和java编译器给出了以下错误:

不存在类型变量u的实例,因此boolean符合optional<?扩展U>

老实说,我不明白为什么它不能这样工作--我有一种感觉,我错过了一些明显的东西,但因为即使谷歌没有能够帮助我这一个,我希望你可以。

共有1个答案

姜楷
2023-03-14

使用.map(..)而不是flatmap

optTestFunction
    .map(f -> f.apply("Test"))
    .orElse(false);

当map步骤返回可选的时,使用flatmap。这里并非如此。

 类似资料:
  • 这部分是关于选择许可证的快速粗糙指南。阅读Chapter 9, 许可证,版权和专利可以理解不同许可证的法律含义细节,以及这些许可证如何影响人们将你的软件与其他自由软件混合的能力。 确实有大量可供选择的许可证。其中大多数我们这里不必讨论,因为他们通常是为了满足公司或个人的特定法律需求,不会适合你的项目。我们会限制为大多数常见的许可证;大多数情况下,你会从其中选择一个。 “可以做任何事情的”许可证 如

  • 大陆是一个复合物体。结构为: 所以在这个符号中: 这很好,但当我尝试编写通用映射器时, 并通过以下方式调用它 它编译得很好,但不起作用。地图绘制者跳到第二步,说大陆不能投射到这个国家,为什么?在进行映射时应该没有强制转换,如何修复它?

  • 为什么在使用java可选方法时,不能在orElse部分抛出选中的异常? 例如: 其中是扩展类的自定义异常(检查异常)。 但是这段代码让编译器感到不安: (知道它已经在方法声明中抛出,并且用try-catch包围这个块并不能解决编译问题)。 但是,如果我们使扩展(未选中),那么所有工作都完美。 有人知道为什么吗? 在这个java 9可选方法中阻止抛出此类异常的原因是什么? 为什么我要将我的异常设置为

  • 我想使用可选实用程序在JDK8中执行空检查。这是我写的代码,给我一个错误: 这里可以显示或不显示“jcr:description”。如果它存在,我想在description变量中使用该值,如果为null,只需为description设置空白字符串。这里也可以使用Lambda表达式吗?谢谢

  • 问题内容: 我正在尝试将我的node.js应用程序(带有express和mongoose)部署到openshift上,但我无法这样做。该应用程序可以在我的本地环境中完美运行。 我的入口是文件/ bin / www 我将它作为package.json文件中此行的openshift入口点 我已经确保按照指南使用环境变量设置mongodb连接,如下所示: 我得到的错误是: 这对我来说很奇怪,因为我没有在

  • 我无法在我的系统上选择Selenium IDE选项: 麦克高塞拉利昂 火狐 52 硒IDE 2.9.1(我知道它很旧,但(通常)它可以工作,我无法更改它! 选择选项具有以下值: 我需要选择值为15的最后一个选项NT* 所有这些命令似乎都不能正常工作: 问题是命令select只选择NT,而不是NT* 可行的方法是: 但是,我没有这个值,所以这个选项是不可能的。我需要用标签选择它。。。 有什么想法吗?