我对React堆核心相当陌生,我正在努力理解它的工作方式。我发现一个示例程序,我试图运行,但它给我的错误如下。
详细信息->订阅方法(consumer<?类型flux中的超整数>)不适用于参数(new flow.subscriber(){})
据我所知,它需要订户实现来创建订阅,以便从flux获取数据。
请帮忙。
我在jdk8和jdk11中执行了它,但在两个jdk上都出现了相同的错误。
public static void callCustomSubscribe() {
List<Integer> elements = new ArrayList<Integer>();
// Subscriber<Integer> subs = new SubscribeImpl();
Flux.just(1, 2, 3, 4)
.log()
.subscribe(new Subscriber<Integer>() { // Error comes here
@Override
public void onNext(Integer integer) {
elements.add(integer);
}
@Override
public void onError(Throwable t) {}
@Override
public void onComplete() {}
@Override
public void onSubscribe(Subscription subscription) {
// TODO Auto-generated method stub
subscription.request(Long.MAX_VALUE);
}
});
}
1条答案
按热度按时间dly7yett1#
不,不需要定制
Subscriber
要运行的实现。已经有几个在中实现了Reactor
.我真的不明白你想用你的代码做什么。但你通常不会对外声明
ArrayList
把它用在兰姆达斯。它更像是java流,您可以在lambdas中进行转换。例子:
我开始了解React堆的好方法是通过React堆的开始文档。创建通量或单声道并订阅它的简单方法。
你的错误是因为你正在使用
Flow.Subscriber
当它真正想要的是Consumer
这是一个完全不同的接口。如果你真的想实现一个完整的订户,一个好的开始就是使用BaseSubscriber
作为一个抽象基,然后重写其中的一些功能,但这更多的是中间练习。