1 switchIfEmpty接口

Flowable < T > switchIfEmpty ( Publisher <? extends T > other)

Returns a Flowable that emits the items emitted by the source Publisher or the items of an alternate Publisher if the source Publisher is empty.

返回一个Flowable,如果源Publisher为空,则会发出源Publisher发出的项或备用Publisher的项

2 重点单词

alternate [ˈɔ:ltərnət]

  • vi. 交替;轮流;相见;变换;交叉;迭;错;穿插。
  • vt. 使交替;使轮流
  • adj. 交替的;轮流的;备用的
  • n. 代替者

3 switchIfEmpty 测试用例

@Test public void switchIfEmpty() { System.out.println("######debounce#####"); Flowable alternate = Flowable.just("备选方案1","备选方案2"); Flowable.just("主方案") .switchIfEmpty(alternate) .subscribe(new Consumer<Object>() { @Override public void accept(Object o) throws Exception { System.out.println("o = " + o); System.out.println("#如果Flowable为空时#"); Flowable.empty() .switchIfEmpty(alternate) .subscribe(new Consumer<Object>() { @Override public void accept(Object o) throws Exception { System.out.println("o = " + o); ######debounce##### o = 主方案 #如果Flowable为空时# o = 备选方案1 o = 备选方案2

4 switchIfEmpty 测试用例说明

上面测试用中在如果我们的Publisher不是空,则备选方案是不会启用的

5 switchIfEmpty 总结

这里把switchIfEmpty提前到这里分析有助于理解,defaultIfEmpty操作符是在Publisher不发送数据时发送一个默认的数据,如果在同样的条件下需要发送更多数据,switchIfEmpty操作符是个更好的选择,可以发送一个自定的Publisher,可以比较两者传入参数类型。

其他操作符

delay delaySubscription(辅助操作符)

defaultIfEmpty(条件操作符)

debounce(过滤操作符)去重复操作

count(统计操作符)

contains(条件操作符)

concatWith(连接操作符)

concatMap(变换操作符)

collect & collectInto

cache

buffer

switchIfEmpty目录1 switchIfEmpty接口2 重点单词3 switchIfEmpty测试用例4 switchIfEmpty测试用例说明5 switchIfEmpty总结1 switchIfEmpty接口Flowable&lt;T&gt; switchIfEmpty(Publisher&lt;? extendsT&gt;othe... 三、 Rx Java flatMap 操作符 用法详解 四、 Rx Java concatMap 操作符 用法详解 五、 Rx Java onErrorResumeNext 操作符 实现app与服务器间token机制 六、 Rx Java retryWhen 操作符 ...
switch IfEmpty(Observable emptyObservable) 操作符 从字面意思上就很好理解,就是当为空的时候跳转到emptyObservable。 那么如何理解当为空的时候. 下面将会使用实际案例解释这个 switch IfEmpty的使用方法。 一、业务需求 假如我们的app里有加载文章列表功能,要求加载的逻辑如下:加载文章的的时候,先从本地加载,如果本地存在就是用本地的数据,...
com.alibaba.nacos.api.exception.NacosException: null at com.alibaba.nacos.api.config.ConfigFactory.createConfigService(ConfigFactory. java :45) ~[nacos-api-1.0.0.jar:na] at com....
Uipath 利用excel筛选结果进行判断操作/或者取值操作(if, switch flow switch …) 应用案例:需要对一个目标值进行查询是否在某个数据表中,比如:查询A/X是否存在或者查询A对应的备注。 流程设计: 流程分解: IF的判断 条件 : table2.rows(0)(0).ToString="",这个表达式的含义是datatable2的第0行,第0列单元格的值转换为文本=空白 这个可以用于判断我们根据 条件 筛选后的结果是否位空值或者有效值,来进行下一步骤的安排; (比如:筛选值为X
public class Rx java All { public static void main(String[] args) { Observable.range(1,10).all(x->x<100).subscribe(x->System.out.println(x)); 其中,condition是一个布尔表达式,如果为true,则返回trueValue,否则返回falseValue。 要在 条件 表达式中使用安全导航 操作符 ,可以将属性访问表达式放在括号中,然后在括号后面添加安全导航 操作符 。例如,假设我们有一个user对象,它有一个address属性,address属性可能为空。我们想要在 条件 表达式中使用address属性,但是不想在address为空时抛出异常。我们可以这样写: ${user.address != null ? user.address.street : null} 这里我们使用了三元运算符来检查address属性是否为空。如果不为空,则返回address.street属性的值,否则返回null。注意,我们需要使用 != 操作符 来检查address是否为null,因为JUEL表达式不支持使用安全导航 操作符 检查null值。