不存在类型变量 U 的实例,因此 Foo 符合 CompletionStage<U>

我已经在这里待了几个小时,但似乎无法解决这个问题。错误与这一段代码有关:

http://img3.mukewang.com/61025b3c000176de06480186.jpg

错误本身是:

不存在类型变量 U 的实例,因此 GetUsersForAdAccountResponse 符合 CompletionStage

thenComposes链的最开始,我删除了return并使用了 IntelliJ 的“引入局部变量...”功能来查看整个链(直到并包括第 1118 行)返回的类型:

http://img4.mukewang.com/61025b4c00019e7606560182.jpg

结果是一个

final CompletionStage<U> uCompletionStage = ...

但是可以看到包含方法的返回类型是

public CompletionStage<GetUsersForAdAccountResponse> ...

是什么阻止编译器推断GetUsersForAdAccountResponse?(同样,通常这里有一个return。)

我还尝试在每个过程中引入一个局部变量thenCompose,它们似乎都是正确的。每个产生 a CompletionStage<Foo>,下一个thenCompose提供一个期望的 lambdaFoo并产生 a CompletionStage<Bar>,依此类推。(在代码的一次重组中,我确实看到了嵌套,CompletionStage<CompletionStage<Foo>>但我认为这是我自己重写的产物。)



慕无忌1623718
浏览 586回答 1
1回答

慕妹3146593

thenCompose链中的最后一个应该是thenApply.&nbsp;传递给它的函数正在返回一个GetUsersForAdAccountResponse不是CompletionStage。thenCompose是flatMap的CompletableFuture。它需要一个返回 a 的函数并将CompletionStage结果展平。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java