[kotlin] 코틀린 리플렉션을 이용한 구조체 필드 정보 확인

리플렉션을 이용하면 코드 실행 중에 객체나 클래스의 정보를 분석할 수 있습니다. 코틀린에서도 리플렉션을 활용하여 구조체의 필드 정보를 확인할 수 있습니다. 이번 포스트에서는 코틀린에서 리플렉션을 사용하여 구조체의 필드 정보를 확인하는 방법에 대해 알아보겠습니다.

구조체와 필드 정보 확인

코틀린에서는 KClass를 사용하여 리플렉션을 수행할 수 있습니다. 그리고 memberProperties를 사용하면 해당 클래스의 속성 정보를 얻을 수 있습니다. 아래는 간단한 예제 코드입니다.

import kotlin.reflect.full.memberProperties

data class Person(val name: String, val age: Int)

fun main() {
    val personClass = Person::class
    val properties = personClass.memberProperties

    for (prop in properties) {
        println(prop.name)
    }
}

위 예제는 Person 클래스의 속성 정보를 얻어와서 각 속성의 이름을 출력하는 간단한 코드입니다. 이를 실행하면 “name”과 “age”가 출력됩니다.

필드 속성에 접근

리플렉션을 사용하면 필드 이름을 통해 해당 필드의 값을 가져올 수 있습니다.

fun main() {
    val person = Person("Alice", 29)
    val nameProperty = Person::name
    val ageProperty = Person::age

    println(nameProperty.get(person))
    println(ageProperty.get(person))
}

위 코드에서 nameProperty.get(person)는 “Alice”를 출력하고, ageProperty.get(person)는 29를 출력합니다.

결론

코틀린에서 리플렉션을 사용하여 구조체의 필드 정보를 확인하는 방법을 살펴보았습니다. 리플렉션을 통해 코드 실행 중에 객체나 클래스의 정보를 유연하게 다룰 수 있으며, 이는 특정 상황에서 매우 유용할 수 있습니다.

참고 자료: