Kotlin 检查 Collection 是否既不为 null 也不为空

问题描述 投票:0回答:2

现在,我正在使用以下函数来进行此检查

if(list.isNullOrEmpty().not()) {
  doSomething()
} else {
  dont()
}

对我来说,我觉得会有一种更短的方法来实现与

neitherNullNorEmpty()
或只是
isNotEmpty()
相同的效果(当前 isNotEmpty 采用不可为空列表)。类似于
CollectionUtils.isNotEmpty(list)
的东西看起来更干净。现在我要么必须在末尾添加
not()
要么添加“!”,这看起来不太正确,因为我觉得应该有一个函数来执行此操作。这样的函数会让代码更加简洁,更容易阅读。我错过了什么还是 Kotlin 错过了什么?

kotlin apache-commons
2个回答
0
投票

您可以自定义功能来检查列表,就像这样

private fun List<Any>.neitherNullNorEmpty():Boolean{
        return this.isNullOrEmpty().not()
}

那就打电话吧

    val list = arrayListOf<String>()
    val list2 = arrayListOf<Int>()
    if(list2.neitherNullNorEmpty()){

    }

0
投票

Kotlin 中没有

isNeitherNullNorEmpty
这样的函数。你必须自己定义它。

fun <T> Collection<T>?.isNeitherNullNorEmpty(): Boolean = !isNullOrEmpty()

fun main() {
    val xs: List<String>? = listOf("a")
    val ys: List<String>? = emptyList()
    val zs: List<String>? = null
    
    println(xs.isNeitherNullNorEmpty()) // true
    println(ys.isNeitherNullNorEmpty()) // false
    println(zs.isNeitherNullNorEmpty()) // false
}
© www.soinside.com 2019 - 2024. All rights reserved.