Java 可选 : flatmap and orElseGet

标签 java java-stream

<分区>

我已经编码了:

Optional.ofNullable(this.cache.get(id))
    .orElseGet(this.referenceService.get(id));

问题是 this.referenceService.get返回 Optional .

所以,我收到了这条编译消息:

The method orElseGet(Supplier<? extends Reference>) in the type Optional<Reference> is not applicable for the arguments (Optional<Reference>)

有什么想法吗?

最佳答案

从 Java 9 开始,您可以使用 Optional.or()

Optional<String> foo = Optional.empty();
Optional<String> bar = Optional.ofNullable("Bar");
System.out.println(foo.or(() -> bar));

关于Java 可选 : flatmap and orElseGet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54480033/

相关文章:

java - IntelliJ IDEA 中已使用的未使用的导入语句

java - 将 hibernate 从 3.2.4.sp1 升级到合适的版本

Java 8 按属性过滤

Java 8 - 使用许多过滤器的过滤器集合

java - 如何从 Intellij IDEA 中的类创建 .jar 库

java - 如何在代号一的路径上正确书写文本

java - 为什么 Stream<T> 没有实现 Iterable<T>?

java - 在外部修改时流式传输并发集合是否安全?

java - 不区分大小写的字符串数组比较

java-8 - Java 8 流收集集