在处理Mono和Flux时,如何避免在kotlin中使用非空断言(!!)
我怎样才能卸下!!接线员:我什么时候有以下代码在处理Mono和Flux时,如何避免在kotlin中使用非空断言(!!),kotlin,spring-webflux,Kotlin,Spring Webflux,我怎样才能卸下!!接线员:我什么时候有以下代码 val flux = Flux.just(Foo("Big"), Foo(null), Foo("Small")) flux.filter { it.name != null } .map { functionThatRequiresAString(it.name!!) } fun functionThatRequiresAString(name: String){ // map } Kotlin提供了许多处理可空值的可爱方法。我想
val flux = Flux.just(Foo("Big"), Foo(null), Foo("Small"))
flux.filter { it.name != null }
.map { functionThatRequiresAString(it.name!!) }
fun functionThatRequiresAString(name: String){
// map
}
Kotlin提供了许多处理可空值的可爱方法。我想到的一个问题是让
flux
.filter { it.name != null }
.map {it?.let { it1 -> it1.toUpperCase() }
Kotlin提供了许多处理可空值的可爱方法。我想到的一个问题是让
flux
.filter { it.name != null }
.map {it?.let { it1 -> it1.toUpperCase() }
有一个方便的
mapNotNull
函数,您可以与安全呼叫操作员?
一起使用,以提供:
flux.mapNotNull { it.name?.toUpperCase() }
这提供了所需的大、小输出。有一个方便的
mapNotNull
函数,您可以与safe call操作符?
一起使用,以提供:
flux.mapNotNull { it.name?.toUpperCase() }
这提供了所需的大、小输出,您可以组合
过滤器
和映射
,在需要跳过某个内容时使用0个元素,在需要映射该内容时使用1个元素。这里
flux.flatMapIterable {
val name = it.name
if (name != null) listOf(functionThatRequiresAString(name)) else listOf()
}
RxJava有更具体的
flatmap可能
,但Reactor似乎没有类似的功能。您可以组合过滤器
和映射
,需要跳过某个内容时使用0个元素,需要映射时使用1个元素。这里
flux.flatMapIterable {
val name = it.name
if (name != null) listOf(functionThatRequiresAString(name)) else listOf()
}
RxJava有更具体的
flatMap可能
,但Reactor似乎没有一个等价物。它等同于只写It.name?.toUpperCase()
。它等同于只写It.name?.toUpperCase()
。Flux类没有mapNotNull方法,它仅用于集合Flux类没有mapNotNull方法,它仅用于集合