1

我有一个包含大约 37 个属性/参数的 Kotlin 数据类。我想将所有这些参数的值放入一个列表中。我怎样才能以一种干净、最小和有效的方式做到这一点?我试过搜索,但还没有遇到任何类似的东西。

任何帮助,将不胜感激。谢谢。

编辑

每个属性/参数都是一个字符串。我在 Android 中将每个字符串加载到它自己的 TextView 中(是的,TableLayout 中有 37 个 TextView,每个都有自己的标签。收据的样子)。但我不想这样做 ( textView.text = myClass.parameter) 37 次。

4

1 回答 1

4

使用反射的解决方案

包括 kotlin-reflect

// 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功能

于 2018-12-14T16:22:40.450 回答