Новичок в Котлине здесь.Kotlin invoke getter/setter
Я пытаюсь создать и заполнить объекты отражением в программе. Я не могу найти эквивалентную функциональность в чистом kotlin, поэтому мое решение похоже на код, который работает отлично, но требует использования грязных ссылок, таких как java.lang.String::class.java
, и intelliJ, по-видимому, похоже не нравится. Есть ли более простой способ, который мне не хватает для этого?
val jclass = myObject::class.java
val setters = jclass.declaredMethods.filter { it.name.startsWith("set") }
for (s in setters) {
val paramType = s.parameterTypes.first()
val data = when(paramType) {
java.lang.Integer::class.java -> foo
java.lang.Double::class.java -> bar
java.lang.String::class.java -> baz
}
s.invoke(myObject, data)
}