官术网_书友最值得收藏!

defaultIfEmpty()

If we want to resort to a single emission if a given Observable comes out empty, we can use defaultIfEmpty(). For a given Observable<T>, we can specify a default T emission if no emissions occur when onComplete() is called.

If we have an Observable<String> and filter for items that start with Z but no items meet this criteria, we can resort to emitting None:

import io.reactivex.Observable;

public class Launcher {
public static void main(String[] args) {

Observable<String> items =
Observable.just("Alpha","Beta","Gamma","Delta","Epsilon");

items.filter(s -> s.startsWith("Z"))
.defaultIfEmpty("None")
.subscribe(System.out::println);
}
}

The output of the preceding code snippet is as follows:

None

Of course, if emissions were to occur, we would never see None emitted. It will only happen if the preceding Observable is empty.

主站蜘蛛池模板: 龙岩市| 鄱阳县| 阜南县| 谷城县| 葵青区| 玉山县| 沙洋县| 祁连县| 临城县| 武夷山市| 日土县| 乡宁县| 齐河县| 子长县| 和龙市| 大足县| 措美县| 和政县| 东乌| 平江县| 弋阳县| 铁力市| 晋城| 太仆寺旗| 浏阳市| 通化县| 辽源市| 纳雍县| 南澳县| 乳山市| 上杭县| 图木舒克市| 南靖县| 绥芬河市| 西和县| 吉安县| 突泉县| 资源县| 深州市| 湖南省| 沙湾县|