【问题标题】:Void is not a functional interfacevoid 不是功能接口
【发布时间】:2018-08-30 02:42:02
【问题描述】:

我正在尝试订阅 observable,例如:

List<String> colors = Arrays.asList("RED", "BLACK", "WHITE", "GREEN", "YELLOW", "BROWN", "PURPUL", "BLUE");
    Observable.just(colors).subscribe(s -> System.out.println(s));

它工作正常,但如果我使用方法参考编译器会给出错误“void is not a functional iterface”

任何人都可以解释一下吗?按照我的说法,订阅者接受消费者功能接口,它不返回任何内容,但我们可以打印流数据,例如:

 Observable.just(colors).subscribe(s -> System.out::println);// NOT COMPILE

【问题讨论】:

    标签: java lambda java-8 rx-java2


    【解决方案1】:

    您的方法引用语法错误。改成这样,

    Observable.just(colors).subscribe(System.out::println);
    

    【讨论】:

    • 或者其他方式(lambda)是Observable.just(colors).subscribe(s -&gt; System.out.println(s));
    【解决方案2】:

    以下内容就足够了:

    Observable.just(colors).subscribe(System.out::println);
    

    在编写方法引用时,您不必在此之前提及 arg。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 2014-10-03
      • 2020-08-10
      • 1970-01-01
      • 2010-12-18
      相关资源
      最近更新 更多