我有下面的代码来从列表中选择第一个项目,其中该项目的姓氏字段值不应该是UNKNOWNor MISSING。
val userLastName = someList
.first { it.lastName != "UNKNOWN" && it.lastName != "MISSING" }
.lastName
Run Code Online (Sandbox Code Playgroud)
现在 Intellij 说字段 userLastName 永远不能为空。为什么?
如果列表中的所有对象的lastName字段值为 或UNKNOWN,MISSING那么该userLastName变量将为空,对吧?
我尝试更改代码以使用 null 安全运算符:
val userLastName = someList
.first { it.lastName != "UNKNOWN" && it.lastName != "MISSING" }
?.lastName
Run Code Online (Sandbox Code Playgroud)
但我收到以下警告:
Safe call on a non-null receiver will have nullable type in future releases
Run Code Online (Sandbox Code Playgroud)
该.first函数要求至少有一个元素与谓词匹配。如果没有找到匹配的元素,它会抛出异常。
如果您想null在没有元素匹配时返回,可以使用.find代替.first。
| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |