Построить строку на основе объекта с нулевыми значениями - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть свой объект "Наблюдение".Этот объект имеет некоторые значения, которые могут быть нулевыми.Теперь я хочу создать строку на основе этих значений, игнорируя нулевые значения.

Сейчас я делаю что-то вроде этого:

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)

Таким образом, я проверяю, какие значения равны нулюи только если они не равны нулю, я добавляю его в свой список.Затем я продолжаю разделять все значения тире.Он производит то, что я хочу, но я боюсь, что такое поведение вредно для производительности, так как я делаю много «если» в своем коде.

Есть ли способ улучшить это?

1 Ответ

0 голосов
/ 28 ноября 2018
listOfNotNull(observation.country, observation.group, observation.locality)
             .joinToString(" - ")

, что может быть упрощено до:

val myString = with(observation) {
  listOfNotNull(country, group, locality).joinToString(" - ")
}

Вероятно, проще всего просто использовать listOfNotNull и joinToString.

...