java - 如果 Mono 为空,如何返回 null
问题描述
我正在调用外部服务来获取externalId
,如果该服务不起作用,我所需要的只是填充值null
return externalClient.getExternalId() //returns Mono<String> or Mono.empty()
.map(id -> {
//in case of empty stream, i need call entity.setExternalId(null);
entity.setExternalId(id);
return entity;
});
解决方案
尝试以下操作:
return externalClient.getExternalId()
.map(id -> {
entity.setExternalId(id);
return entity;
})
.switchIfEmpty(() -> {
entity.setExternalId(null);
return Mono.just(entity);
});
推荐阅读
- angular - 控制器中元素的角度检查溢出
- javascript - 如何根据用户的输入生成自定义图像?
- javascript - 在搜索文本框中输入日期值时如何避免 ajax 错误?
- python - VideoCoreIV VC4CL(Raspberry Pi GPU)上的 PyOpenCL 性能问题
- gerrit - 在 Linux 上安装 Gerrit | 未知密钥类型 ed25519
- angular - 如何手动强制重新渲染Angular2中的组件?
- scala - 如何将包含子列表的RDD展平为主列表
- c# - 具有遵循特定模式的尾部的字符串的头部
- node.js - 如何在 VS Code 中使用两个不同的 .eslintrc.json?
- django - django 管理列表对象打印