How can I rewrite this via a Java Lambda?
This question is different from "Lambda Expression and generic method" issue. The issue is because of throwing an Exception.
public Observable<String> getUserInfo() {
return Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> emitter) throws Exception {
try {
emitter.onNext( getPlayerInfo());
emitter.onComplete();
} catch (Exception e) {
emitter.onError(e);
}
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
When I rewrite this via a normal Lambda, then I get this error:
Incompatible types: Required: Observable <java.lang.String>. Found: Observable <java.lang.Object>.
This is what I tried:
public Observable<String> getUserInfo() {
return Observable.create( emitter -> {
try {
emitter.onNext(getPlayerInfo();
emitter.onComplete();
} catch (Exception e) {
emitter.onError(e);
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}