Ответ 1
Прежде всего, свойства componentN
доступны только для классов данных, а не для каждого объекта.
Нет API, специально для итерации по компонентам, но вы можете использовать отражение Kotlin для перебора свойств любого класса:
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)}")
}
}