RxJavaが新しくなった。私はこのようなコードを持っています。私はrepository.getStatus()
から返された文字列からオブザーバブルを作成しています。 nullの場合は何もせずにproceed
メソッドを続行する必要があります。それがヌルでない場合は、repository.init()
に電話してからproceed
に電話する必要があります。ここに私がしたことがあります。場合repository.getStatus()
にRxJava:Nullableオブジェクトからobservableを作成する
Flowable.just(repository.getStatus()) // getStatus return a string , which can be null
.doOnError(throwable -> proceed())
.flatMapCompletable(s -> repository.init())
.observeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(new DisposableCompletableObserver() {
@Override
public void onComplete() {
proceed();
}
@Override
public void onError(@NonNull Throwable e) {
handleErrors(t));
}
});
private void proceed(){
//
}
それはdoOnError(throwable -> proceed())
を呼び出す文句を言わない、nullの? repository.getStatus()
がnullの場合にクラッシュするようになりました。このようなユースケースを扱うには最高のRx方法は何ですか?
チェック[この](https://stackoverflow.com/questions/ような何かを行うことができ、この
のようなものを試してみてください39781420/handling-null-in-rxjava2) – masp
@maspしかし、受け入れられた答えで言われているように、上記のオプション24の「Optional.ofNullable」は必要です。私の最小バージョンは19 – Jrd
です。答えとは別に、多くのことを理解できる会話の質問に[link](https://github.com/ReactiveX/RxJava/issues/4644)もあります。 – masp