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

提取/订阅生成接口方法上返回类型的Mono值

黄宏大
2023-03-14

我有一个从WSDL生成的接口,所以我不能更改签名。其中一个方法返回List

public List<Attributes> getUserProfile(final String filterValue);

return语句调用一个返回Mono的方法

@Override
public List<Attributes> getUserProfile(final String filterValue) {

    return getUserProfile(serviceName, filterValue)
            .map(userProfile -> userProfileToAttributeList(userProfile));
//            .subscribe(userProfile -> userProfileToAttributeList(userProfile));
//            .map(listAttributes -> listAttributes);

//    Mono<UserProfile> userProfileMono = getUserProfile(serviceName, filterValue);
//    return userProfileMono.subscribe(userProfile -> userProfileToAttributeList(userProfile));
}

private Mono<UserProfile> getUserProfile(final String serviceName,final String filterValue) {
    return myService.getUserProfile(serviceName, filterValue);
}

private List<Attributes> userProfileToAttributeList(final UserProfile userProfile) {
    return userProfile.getAttributes().stream().map(MyServiceEndpoint::newAttribute).collect(Collectors.toList());
}

共有1个答案

曾修真
2023-03-14

由于无法将方法签名更改为返回MonoFlux,因此没有其他方法可以绕过它,因此需要阻塞以获取“real”列表

只有当整个操作在每个步骤上都是反应性的,反应性才起作用。因为这个方法"说"它将返回List

 类似资料:
  • 我有一个很长的方法,其中包含一堆将返回当我们发现无效对象时。 如何生成和提取这些验证代码。错误我已经尝试了以下方法,但它警告我需要指定

  • 我已经成功地从一个。yaml打开api描述符文件,但正如问题标题中所述,我希望将这些接口的响应类型从ResponseEntity更改为我自己的类型。基本上,接口没有此签名: 对于基本上以这种方式实现的方法: 我希望生成的接口尽可能简单 同样的事情,我自己定义的类,而不是

  • 问题内容: 我在接口上苦苦挣扎。考虑一下: 我希望函数返回a 或an ,具体取决于是否从或调用 当我尝试对此进行编译时,出现以下错误: 不能将s( StringGenerator类型)用作数组或切片文字中的Generator类型: StringGenerator不实现Generatorer(getValue方法的类型错误) 有getValue()字符串 要getValue() 我该如何实现? 问题

  • 问题内容: 如下代码: 产生以下错误: 错误CS0738:“ InheritanceTest.MyData”未实现接口成员“ InheritanceTest.ISomeData.Data”。’InheritanceTest.MyData.Data’无法实现’InheritanceTest.ISomeData.Data’,因为它没有匹配的返回类型’System.Collections.Generic

  • 问题内容: 我正在玩Go,发现一个我无法解决的问题。假设我有如下代码: 我导入了软件包并开始使用它: 我真的很喜欢我的助手“运行”,但是我想使其更加慷慨:我不希望人们总是向我传递MySQL客户端。可以是具有“ RunQuery”和“ Result”方法的任何东西。所以我尝试使用接口: 可悲的是,这不再编译了。我收到此错误: Go不支持此功能吗,或者我做错了什么? 问题答案: 应该返回接口,否则你总

  • 我正在使用Junit 5和mockito进行一些单元测试。 要被模拟的方法调用如下。它返回一个Mono并接受两个String参数。 我嘲笑它如下 这会产生一个空指针,如下所示