[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 클래스의 속성들을 리플렉션을 사용하여 출력하는 예시입니다. 실행하면 nameage 속성이 각각의 이름과 타입이 출력됩니다.

코틀린에서는 KClass 타입의 인스턴스를 통해 리플렉션을 다루며, 여기서 javaClass.kotlin을 통해 해당 클래스의 KClass 인스턴스를 얻을 수 있습니다.

결론

코틀린의 리플렉션은 클래스 정보를 동적으로 다룰 수 있게 해주어 매우 강력한 기능입니다. 하지만 리플렉션을 남용하면 안전하지 않은 코드를 작성할 수 있기 때문에 신중하게 사용해야 합니다.

참고 자료: Kotlin Reflection