第一次使用Multi,我做错了什么。我想使用一个SubmissionPublisher从java.util.concurrent。它实现了流。出版商接口。
final SubmissionPublisher<String> subPub1 = new SubmissionPublisher<>();
final var m1 = Multi.createFrom().publisher(subPub1);
Multi.createFrom。publisher的签名表明该参数需要实现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>)
你知道我做错了什么吗?
也许你可以用org.reactivestreams.FlowAdapters
;
var flowPublisher = new SubmissionPublisher<String>();
var multi = Multi.createFrom().publisher(FlowAdapters.toPublisher(flowPublisher));