我有我的自定义对象“Obersvation”。该对象有一些可能为空的值。现在我想根据这些值创建一个字符串,忽略空值。
现在我正在做这样的事情:
val myList = arrayListOf<String>()
if (observation.country != null) myList.add(observation.country)
if (observation.group != null) myList.add(observation.group)
if (observation.locality != null) myList.add(observation.locality)
val myString = TextUtils.join(" - ", myList)
这样,我检查哪些值是空值,只有当它们不为空时我才将其添加到我的列表中。然后我继续用破折号分隔所有值。它产生了我想要的结果,但我担心这样做对性能不利,因为我在代码中做了很多“ifs”。
有什么办法可以改善吗?
最佳答案
listOfNotNull(observation.country, observation.group, observation.locality)
.joinToString(" - ")
可以简化为:
val myString = with(observation) {
listOfNotNull(country, group, locality).joinToString(" - ")
}
使用 listOfNotNull
可能是最简单的和 joinToString
为此。
关于android - 基于具有空值的对象构建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53523365/