-1
我有觀察用戶所選業務的流。如果沒有選擇業務,它應該發出null
。這是一個熱門的可觀察所以它不應該終止。RxJava熱觀察流中的NullPointerException
@Override
public Observable<Business> observeSelected() {
return selectedDb.observe()
.flatMap(businessId -> observe(businessId);
}
有沒有被選擇的業務的兩個重要方法調用這裏
Observable<String> selectedDb.observe()
返回所選業務的String businessId
,或null
。
Observable<Business> observe(String businessId)
如果具有指定ID號的業務發現返回Business
與#1的businessId
,或null
如果#1或#2發射null
,我希望整個方法一次發出null
。
顯然,當#1或#2發出空值時,此代碼將拋出NullPointerException
。我可以用空檢查來清除上面的代碼併發出null,但這會使它非常難看。有沒有辦法只用RxJava捕獲NullPointer異常?我可以用.filter()
防止空被髮出,但我還是想沒有選擇企業時發出的onNext(null)
。
這裏最好的做法是什麼?