【Kotlin 1.4】使用listOfNotNull()创建对象

【Kotlin 1.4】使用listOfNotNull()创建对象_第1张图片

listOfNotNull


If you want to store some nullable values in a non-nullable list (or set), you don’t have to null-check manually. Instead, use the listOfNotNull() function (and, starting with Kotlin 1.4, setOfNotNull()). #KotlinTips pic.twitter.com/LTcIumU4wb


— Kotlin (@kotlin) July 15, 2020

kotlin 1.4之后,官方推荐使用listOfNotNull等创建不含null的集合对象,更加方便

val a: Int = 1
val b: Int? = 2
val c: Int? = null

val list = listOfNotNull(a, b, c)
println(list) // [1, 2]

打印发现null没有进入list

类似的工厂方法越来越多,记不住怎么办?

不用担心,IDE会在合适的时候给出提示:

//传统写法:
val list = listOf(a, b, c).filterNotNull()
println(list)

IDE提示:
在这里插入图片描述

Example


例如要处理一组可空数据

fun getHeader(): Item?
fun getBody(): Array<Item?>
fun getFooter(): Item?

希望去除null时,需要手动filter

val items = buildList {
        getHeader()?.let { add(it) }
        getBody().filterNotNull().forEach { add(it) }
        getFooter()?.let { add(it) }
    }

现在使用listOfNotNull就轻松多了

val items = listOfNotNull(
        getHeader(),
        *getBody(),
        getFooter()
    )

你可能感兴趣的:(Kotlin,kotlin,listOf,listOfNotNull)