Как сделать этот код лучше, если у меня есть метод или расширение utils? - PullRequest
0 голосов
/ 09 июля 2019

Итак, у меня есть эта getLocalizedTitle() функция для этих 3-х типов классов. Должен ли я иметь в качестве утилит и передавать заголовки этой функции или может быть более хорошее решение с расширениями?

data class Carousel(val id: String, val titles: List<Title>) : ContentItem()
 data class HeroBanner(val titles: List<Title>,
                        val descriptions: List<Description>,
                        val images: List<Image>, val id: String) : ContentItem() 
}


data class MenuItem(val type: String, val titles: List<Title>, val actionType: String, val pageComponents: List<PageComponent>) :



    fun getLocalizedTitle(locale: String): Title? {
      val titles = titles.filter { it.locale == locale }
      return if (titles.isNotEmpty()) {
        titles[0]
      } else {
        null
      }
    }

1 Ответ

1 голос
/ 09 июля 2019

Вы можете создать функцию расширения:

fun List<Title>.localized(locale: String): Title? =
     firstOrNull { it.locale == locale }
...