Kotlin:迭代对象的组件

标签 kotlin

每个数据类对象对于每个属性都有一个组件,例如组件 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/

相关文章:

kotlin - 使用类委托(delegate)时,有没有办法覆盖委托(delegate)对象的方法使用的成员?

kotlin 让订阅者使用 RxJava2 观察可观察对象

java - 问 : JPA save() save other object

android - 从 WorkManager API 级别 29+ 启动 Activity

android - 如何使用 Kotlin Coroutines 从任何音乐文件中高效提取专辑封面

kotlin - 枚举包中定义的扩展属性

android - 如何在 Android 中实现这种类型的底部表单对话框?

parsing - 将字符串转换为 HashMap 的最简单方法

enums - 如何通过在Kotlin中使用枚举转换为NotNull

java - ActiveMQ:拦截发布到某个主题