java - 没有参数的 Lambda 函数 - 无法推断功能接口(interface)类型

标签 java spring-boot lambda rx-java rx-java2

我有一个不需要任何参数的 lambda 函数:

Observable.interval(5, TimeUnit.SECONDS)
  .subscribe(x -> new CryptoCompareRxService().getHistoricalDaily("BTC", "USD")
    .subscribe(historicalDaily -> System.out.println("historicalDaily = " + historicalDaily)));

我想用“()”替换“x”,因为它没用:

Observable.interval(5, TimeUnit.SECONDS)
  .subscribe(() -> new CryptoCompareRxService().getHistoricalDaily("BTC", "USD")
    .subscribe(historicalDaily -> System.out.println("historicalDaily = " + historicalDaily)));

但是当我这样做时,我得到一个错误:

Cannot infer functional interface type

为什么?

这是完整的类(class):

package com.tests.retrofitrxjava;

import com.tests.retrofitrxjava.rx.CryptoCompareRxService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import rx.Observable;

import java.util.concurrent.TimeUnit;

@SpringBootApplication
public class RetrofitRxjavaApplication {

  public static void main(String[] args) {

    SpringApplication.run(RetrofitRxjavaApplication.class, args);

    Observable.interval(5, TimeUnit.SECONDS)
      .subscribe(x -> new CryptoCompareRxService().getHistoricalDaily("BTC", "USD")
        .subscribe(historicalDaily -> System.out.println("historicalDaily = " + historicalDaily)));

  }

}

最佳答案

我认为你的错误是由于 RX 的变化 Observable在版本 2 中,订阅现在接受 Consumer接受参数

public final Disposable subscribe(Consumer<? super T> onNext)

Consumer<T> A functional interface (callback) that accepts a single value.

而不是 Action与版本 1 一样

public final Subscription subscribe(Action1<? super T> onNext)

Action1<T> extends Action A one-argument action.

关于java - 没有参数的 Lambda 函数 - 无法推断功能接口(interface)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65698493/

相关文章:

java - 使用 servlet/jsp 检查 HTTP 请求是否来自 Android 手机

spring-boot - 使用 Node Js 配置 Spring Boot-Gradle

java - Spring REST 文档抛出 MustacheException

c++ - 将列表映射到不同类型

java - 我如何检查Java中一个句子中有多少个辅音和元音?

java - 由 : java. lang.ClassNotFoundException : Could not load requested class : models. 引起

spring - @Qualifier 无效

java - 单行/单行lambda中的Eclipse断点?

c++ - 推断 "make_function"的 lambda 或任意可调用对象的调用签名

java - java web编程的难点