java - RxJava 订阅时类型不匹配

标签 java reactive-programming rx-java

我有以下代码来获取滑动窗口平均值。我在订阅函数中收到类型不匹配错误。我正在尝试使用 RxMath 平均函数获取 cpu 使用率的平均值。

import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import rx.*;
import rx.Observable;
import rx.functions.Action1;
import rx.functions.Func1;
import rx.observables.MathObservable;

public class stack {
    private ScheduledThreadPoolExecutor executorPool;

    public void test() {
        Double tests = (double) 100;

        Observable myObservable = Observable.interval(1000, TimeUnit.MILLISECONDS)
                .map(new Func1<Long, Double>() {
                    @Override
                    public Double call(Long aLong) {
                        Double d = (double) 100;//calculate CPU usage                             
                        return d;
                    }
                })
                .window(1, TimeUnit.SECONDS)
                .flatMap(new Func1<Observable<Double>, Observable<Double>>() {
                    @Override
                    public Observable<Double> call(Observable<Double> windowObservable) {
                        return MathObservable.averageDouble(windowObservable);
                    }
                })
                .subscribe(new Action1<Double>() {
                    public void call(Double s) {
                        System.out.println(s);
                    }
                });
    }
}

最佳答案

只需从开头删除 Observable myObservable = 即可。

subscribe 返回的是 Subscription,而不是 Observable。就您而言,您不需要记住对 Observable 的引用。

如果您这样做,请遵循以下模式:

Observable<Double> myObservable = stuffThatReturnsAnObservable();
Subscription subscription = myObservable.subscribe();

关于java - RxJava 订阅时类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29745230/

相关文章:

java - 无法获取两个文件之间的正确相对路径,仅当一个路径是文件而另一个路径是目录时,这是正常的预期行为吗?

java - Spring 集成异常堆栈跟踪像 Apache Camel 一样?

java - RX Java - subscribeOn 和 observeOn 的不同行为

java - 当 Bson 过滤器通过时,Mongo 函数 updatemany() 不起作用

java - 从字符串中检测并提取 url?

java - 是否可以使用非函数式语言构建响应式应用程序?

scala - 相当于 Scala 中的 LINQ to Events

rx-java - 在简单情况下使用响应式(Reactive)编程的原因

java - 如何延迟 RxJava2 订阅?

java - RX Java 2 顺序处理契约(Contract)