Kotlin 获取循环中对象的所有字段的值

Kotlin 获取循环中对象的所有字段的值,kotlin,Kotlin,我有12个字段的类。在kotlin中有什么方法可以在一个循环中获取所有这些元素的值吗?我知道我可以得到一个类中所有字段的列表,但我不知道是否可以从中读取值 您可以使用反射MyClass::class.memberProperties获取所有属性。每个属性都有一个方法get,用于从合适的对象中提取值: val myObject = MyClass(...) for (prop in MyClass::class.memberProperties) { println(prop.get(my

我有12个字段的类。在kotlin中有什么方法可以在一个循环中获取所有这些元素的值吗?我知道我可以得到一个类中所有字段的列表,但我不知道是否可以从中读取值

您可以使用反射
MyClass::class.memberProperties
获取所有属性。每个属性都有一个方法
get
,用于从合适的对象中提取值:

val myObject = MyClass(...)
for (prop in MyClass::class.memberProperties) {
    println(prop.get(myObject))
}

你为什么要这么做?将值存储在
映射中而不是单独的属性中是否更好?还是有其他选择?(正如@Rene所展示的,反射是这个问题的直接答案,但我不推荐它:它速度慢、不安全、脆弱且丑陋。它对框架、插件、构建工具等很有用,但很少适合生产代码。)@gidds我有12列的sqlite数据库,不能真正更改它,这不是我的决定