我有自定义对象“Obersvation”。该对象的某些值可能为null。现在,我想基于这些值创建一个String,忽略空值。
现在我正在做这样的事情:
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)
这样,我检查哪些值为空,并且只有当它们不为空时,才将其添加到列表中。然后,我用破折号分隔所有值。它正在产生我想要的东西,但是我担心这样做会降低性能,因为我在代码中做了很多“if”操作。
有什么办法可以改善这个?
最佳答案
listOfNotNull(observation.country, observation.group, observation.locality)
.joinToString(" - ")
可以简化为:
val myString = with(observation) {
listOfNotNull(country, group, locality).joinToString(" - ")
}
为此,仅使用
listOfNotNull
和 joinToString
可能是最简单的。