我有一堂课,充满了String之类的
data class TestClass (
var par1: String?,
var par2: String?,
var par3: String?
)
我想将其转换为Key和Value为String的Map。在Kotlin中做到这一点的最佳方法是什么?
答案 0 :(得分:1)
您可以使用Kotlin反射来实现,将kotlin-reflect
库添加到应用程序类路径中,然后使用类似的代码:
fun TestClass.asMap() = this::class.declaredMemberProperties
.map {
it as KProperty1<TestClass, Any?>
it.name to it.get(this).toString()
}.toMap()
我们将declaredMemberProperties
元素从星形投影转换为带有Any?
的类型。由于清除了JVM类型,因此该情况未经检查,但仍然是必需的。