여기 Kotlin의 초보자입니다.Kotlin이 반사적으로 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)
}