为什么我不能在lambda中使用方法?

时间:2018-02-19 05:10:48

标签: java android lambda rx-java2

代码:

source.subscribe(
                string -> {
                    if( observed ) destination.onNext( reverse( string ) );
                }
        );



    private String reverse( String forward ) {
        return new StringBuilder( forward ).reverse().toString();
    }

source被声明为ObservableSource<String>

destinationObserver<String>

Android Studio在string的调用中强调reverse并告诉我reverse(java.lang.String) StringReverser(我的封闭类)无法应用于(<lambda parameter>)“ 。

我不明白。 source正在提供字符串,destination消耗字符串。并且reverse方法接受String参数。有什么问题?

1 个答案:

答案 0 :(得分:0)

正如@Andreas在评论中指出的那样,我正在将RxJava 2 Observer视为旧式RxJava 1 Subscriber。不行!一旦我实施了所有4个Observer方法(onSubscribe(), onNext(), onError() and onComplete()),错误便消失了。