首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subscriber不是功能接口

Subscriber不是功能接口
EN

Stack Overflow用户
提问于 2019-11-24 09:33:58
回答 1查看 212关注 0票数 0

我有以下代码。为什么Flux从Publisher扩展时,我不能在publisher的subscribe方法上使用lambda,而可以在Flux上使用lambda?

代码语言:javascript
复制
        Publisher<String> publisher = new Publisher<String>() {
            @Override
            public void subscribe(Subscriber<? super String> subscriber) {
                subscriber.onNext("Hello world");
                subscriber.onNext("Hello world");
                subscriber.onNext("Hello world");
                subscriber.onNext("Hello world");
                subscriber.onComplete();
            }
        };
        //this lines gives me an error "Subscriber<String> is not a functional interface" 
        publisher.subscribe(System.out::println);

        //no error on this line 
        Flux.just("a","b","c","d")
                .subscribe(System.out::println);
EN

回答 1

Stack Overflow用户

发布于 2019-11-24 16:39:46

Publisher.subscribe接受Subscriber作为参数,该参数不是函数接口。

Flux有一个重载的subscribe方法,它接受一个Consumer作为参数,这是一个函数接口。实际上,您在最后一行中使用的是后一个版本。

请参阅Javadoc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59013907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档