【问题标题】:Multi Publisher多出版商
【发布时间】: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 一起发布;但是,已经有可用的版本。

标签: quarkus mutiny


【解决方案1】:

也许你可以使用org.reactivestreams.FlowAdapters

var flowPublisher = new SubmissionPublisher<String>();
var multi = Multi.createFrom().publisher(FlowAdapters.toPublisher(flowPublisher));

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多