热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

订户不是功能接口

我有以下代码。为什么在Flux从Publisher扩展的同时,我不能在发布者的订阅方法上使用lambd

我有以下代码。为什么在Flux从Publisher扩展的同时,我不能在发布者的订阅方法上使用lambda,而在Flux上却可以使用lambda吗?

Publisher publisher = new Publisher() {
@Override
public void subscribe(Subscriber 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 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);



Publisher.subscribeSubscriber作为参数,而不是功能接口。

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

请参见Javadoc


推荐阅读
author-avatar
小果康康维五_469
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有