Параметры класса данных для перечисления - Kotlin android - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть класс данных Kotlin с около 37 атрибутами / параметрами.Я хотел бы получить значения всех этих параметров в списке.Как я могу сделать это чистым, минимальным и эффективным способом?Я пробовал искать, но пока ничего подобного не встречал.

Любая помощь будет признательна.Спасибо.

Редактировать

Каждый из атрибутов / параметров является строкой.Я загружаю каждую из строк в свой собственный TextView в Android (да, 37 TextViews в TableLayout, каждый со своими собственными ярлыками. Вид, как будет выглядеть квитанция).Но я не хочу делать это (textView.text = myClass.parameter) 37 раз.

1 Ответ

0 голосов
/ 14 декабря 2018

Решение с использованием отражения

Включите kotlin-рефлекс

// Gradle Groovy DLS
implementation "org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}"

// Gradle Kotlin DLS
implementation(kotlin("reflect"))

Предположим, следующий случай

data class DataClass(val a: String, val b: String, val c: String, val d: String, val e: String)

val instance = DataClass("A", "B", "C", "D", "E")

DataClass::class.memberProperties.forEach { member ->
    val name = member.name
    val value = member.get(instance) as String

    findTextViewByName(name).text = value
}

Вы должны реализовать findTextViewByName функцию

...