gpt4 book ai didi

android - 如何使用 Maybe 运算符检查可空性

转载 作者:行者123 更新时间:2023-11-29 15:33:52 26 4
gpt4 key购买 nike

在下面的代码中,我想确认或断言映射运算符返回的对象或发射不为空,或者如果为空 - 应该返回 empty()。请让我知道它是否正确..

Activity

companion object {
fun create(): Maybe<WikiApiService>? {
return Single.just(
Retrofit.Builder()
.addCallAdapterFactory(
RxJava2CallAdapterFactory.create()
)
.addConverterFactory(
GsonConverterFactory.create()
)
.baseUrl("https://en.wikipedia.org/w/")
.build()
)
.map { retrofit -> retrofit.create(WikiApiService::class.java) }
.toMaybe()
//.toObservable()
}
}

最佳答案

RxJava 不允许流中有空值,因此如果 map 返回空值,流将因错误事件而终止。

您可以将 map 替换为 flatMapMaybe 并返回 Maybe.just(service)Maybe.empty () 如果值为 null。然后,您可以在 subscribe 回调中断言结果是否成功,其中 onSuccess 表示该值不为 null,onComplete 表示该值为空。

两个附加说明。您返回的 maybe 不必声明为 nullable,因为该信息将在 Maybe 本身中捕获。但是,我不确定您是否需要处理这种 null 情况,因为据我所知,retrofit.create 一开始就不应该返回 null。

关于android - 如何使用 Maybe 运算符检查可空性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56959188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com