java map 返回值_rxjava2 map返回值空处理

最近的项目升级,将rxjava版本由1.x升级到2.x。这期间遇到一个问题,就是map返回空值。

正常的网络请求,有时候可能要求,一个请求完之后,再发起另一个请求,两者的返回结果是一样的,但是如果其中一个请求为空,另一个不为空,不影响程序的正常运行。

我们先模拟个例子

Observable.just("1","2").map {

if (it == "1") null

else it

}.subscribe {

println(it)

}

运行结果

io.reactivex.exceptions.OnErrorNotImplementedException: The mapper function returned a null value.

rxjava的框架内部报错,影响正常的输出。

null过滤掉

那我们怎样将空值过滤掉呢?用filter函数。

Observable.just("1","2").map {

if (it == "1") null

else it

}.filter {

it != null

}.subscribe {

println(it)

}

运行结果,和上面的一样,说明,filter的条件没有走。

那进一步思考,如何在map返回null的时候

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值