[kotlin] 코틀린 리플렉션 사용 예시
코틀린은 리플렉션(reflection)을 통해 실행 시간(Runtime)에 클래스의 정보를 검사하고 조작할 수 있는 기능을 제공합니다. 코드에서 리플렉션을 사용하여 클래스의 속성, 메서드, 생성자 등을 다룰 수 있습니다.
아래는 간단한 코틀린 리플렉션 예시 코드입니다.
예시 코드
import kotlin.reflect.full.memberProperties
data class Person(val name: String, val age: Int)
fun main() {
val person = Person("Alice", 29)
val kClass = person.javaClass.kotlin
kClass.memberProperties.forEach {
println("Property name: ${it.name}, type: ${it.returnType}")
}
}
위 코드는 Person 클래스의 속성들을 리플렉션을 사용하여 출력하는 예시입니다. 실행하면 name과 age 속성이 각각의 이름과 타입이 출력됩니다.
코틀린에서는 KClass 타입의 인스턴스를 통해 리플렉션을 다루며, 여기서 javaClass.kotlin을 통해 해당 클래스의 KClass 인스턴스를 얻을 수 있습니다.
결론
코틀린의 리플렉션은 클래스 정보를 동적으로 다룰 수 있게 해주어 매우 강력한 기능입니다. 하지만 리플렉션을 남용하면 안전하지 않은 코드를 작성할 수 있기 때문에 신중하게 사용해야 합니다.
참고 자료: Kotlin Reflection