[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를 출력합니다.
결론
코틀린에서 리플렉션을 사용하여 구조체의 필드 정보를 확인하는 방법을 살펴보았습니다. 리플렉션을 통해 코드 실행 중에 객체나 클래스의 정보를 유연하게 다룰 수 있으며, 이는 특정 상황에서 매우 유용할 수 있습니다.
참고 자료: