java - Java 可选:flatmap 和 orElseGet
问题描述
我已经编码:
Optional.ofNullable(this.cache.get(id))
.orElseGet(this.referenceService.get(id));
问题是this.referenceService.get
返回一个Optional
.
所以,我收到了这个编译消息:
orElseGet(Supplier<? extends Reference>)
类型中的方法Optional<Reference>
不适用于参数 (Optional<Reference>
)
有任何想法吗?
解决方案
从 java 9 开始,您可以使用Optional.or()
Optional<String> foo = Optional.empty();
Optional<String> bar = Optional.ofNullable("Bar");
System.out.println(foo.or(() -> bar));
推荐阅读
- vue.js - 访问组件的 this 内部 firebase 承诺响应
- java - 原因:java.lang.UnsupportedOperationException: null Lombok with List
- jpa - 单向多对一:保存父实体会在子表中生成不需要的插入
- ibm-cloud - 配置 terraform 以连接到 IBM Cloud
- machine-learning - 如何合并两个保存的keras模型?
- android - 在三星手机上,与其他安卓设备不同,下面显示的代码不起作用,为什么?
- parallel-processing - 将 DMS 与并行加载到 Redshift 目标一起使用时出错
- c++ - 如何将事件挂钩到 CFileDialog?
- laravel - save() 方法仅在 foreach 循环中写入最后一条记录
- jquery - 如何获得选中的复选框长度