Создайте наблюдаемый ReactiveX в Java 6 без лямбда-выражения

Я нашел пример того, как создать наблюдаемый объект (ReactiveX):

static Observable<Integer> getDataSync(int i) {
        return Observable.create((Subscriber<? super Integer> s) -> {
            // simulate latency
                try {
                    Thread.sleep(1000);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                s.onNext(i);
                s.onCompleted();
            });
    }

Но мой проект не поддерживает Java 8 для лямбда-выражения. Я не смог найти пример того, как использовать наблюдаемый ReactiveX без лямбда-выражения.


person Xitrum    schedule 25.03.2016    source источник
comment
Реактивный? Вы имеете в виду Обозреватель? javaworld.com/article/2077258/learn-java/   -  person RubioRic    schedule 25.03.2016
comment
В большинстве современных IDE есть возможность конвертировать в анонимный внутренний класс, если вы пишете лямбду в проекте Java 6.   -  person akarnokd    schedule 25.03.2016
comment
Я использую intellij, но не могу найти, как это сделать. У вас есть опыт?   -  person Xitrum    schedule 25.03.2016
comment
Я использую Eclipse, для этого есть быстрое решение.   -  person akarnokd    schedule 25.03.2016


Ответы (1)


Вы просто ищете правильный синтаксис без лямбда для того, что вы делаете?

Это было бы:

static Observable<Integer> getDataSync(int i) {
    return Observable.create(new Observable.OnSubscribe<Integer> {
        @Override
        public void call(Subscriber<? super Integer> s) {
            // simulate latency
            try {
                Thread.sleep(1000);
            } catch (Exception e) {
                e.printStackTrace();
            }
            s.onNext(i);
            s.onCompleted();
        }
    });
}
person david.mihola    schedule 25.03.2016