PublishSubject - 有没有办法执行 onNext()?

PublishSubject - is there a way to execute something onNext()?

PublishSubject 非常适合在观察者和可观察对象之间架起一座桥梁:

    Observable<String> observable = Observable.just("string");

    PublishSubject<String> observer1 = PublishSubject.<String>create();

    Observer<Object> observer2 = new Observer<Object>() {...}

    // observer2 will receive all onNext and onCompleted events from observer1
    observer1.subscribe(observer2);

    //observer1 will get items from observable and propagate them to observer2
    observable.subscribe(observer1);

然而,它缺乏作为桥梁的功能来做一些事情,我的意思是它会派上用场,能够做这样的事情:

PublishSubject<String> observer1 = PublishSubject.<String>create()
    .doOnNext( item ->  System.out.println("Do something with the item " + item) );

但是编译器抱怨:Type mismatch: cannot convert from Observable<String> to PublishSubject<String>

有没有办法装饰 PublishSubject 以在 next() 上执行某些操作?

这样的装饰在实践中并没有真正起作用。只保留参考原文 PublishSubject 并分发 Observable doOnNext returns.

PublishSubject<String> subject = PublishSubject.<String>create()

Observable<String> source = subject
   .doOnNext( item ->  System.out.println("Do something with the item " + item) );

source.subscribe(System.out::println, Throwable::printStackTrace);

subject.onNext("1");