[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