每个数据类对象对于每个属性都有一个组件,例如组件 1、组件 2 等。 我想知道 Kotlin 中是否有任何方法可以遍历类的每个组件。 说我有课:
data class User(age:Int, name:String)
我可以这样做吗:
for(component in aUserObject){
//do some stuff with age or name
}
?
最佳答案
首先,componentN
属性仅适用于数据类,而不适用于每个对象。
没有专门用于迭代组件的 API,但您可以使用 Kotlin reflection迭代任何类的属性:
class User(val age: Int, val name: String)
fun main(args: Array<String>) {
val user = User(25, "Bob")
for (prop in User::class.memberProperties) {
println("${prop.name} = ${prop.get(user)}")
}
}
关于Kotlin:迭代对象的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688111/