【发布时间】:2023-02-02 22:59:46
【问题描述】:
第一次使用 Multi,我做错了什么。我想使用 java.util.concurrent 中的 SubmissionPublisher。它实现了 Flow.Publisher 接口。
final SubmissionPublisher<String> subPub1 = new SubmissionPublisher<>();
final var m1 = Multi.createFrom().publisher(subPub1);
Multi.createFrom.publishers 的签名表明参数需要实现 Flow.Publisher。但是,我收到类型错误。
The method publisher(Publisher<T>) in the type MultiCreate is not applicable for the arguments (SubmissionPublisher<String>)
我试过用两种不同的方式投射它:
final var m1 = Multi.createFrom().publisher((java.util.concurrent.Flow.Publisher<String>) subPub1);
和
final var m1 = Multi.createFrom().publisher((Publisher<String>) subPub1);
但我仍然收到错误:
The method publisher(Publisher<T>) in the type MultiCreate is not applicable for the arguments (Flow.Publisher<String>)
对我做错了什么有任何见解吗?
【问题讨论】:
-
Mutiny 1.x 基于 Reactive Streams(早于 Flow)。 Mutiny 2.x 切换到 Flow 作为基础。 Mutiny 2.x 将与 Quarkus 3.x 一起发布;但是,已经有可用的版本。