[kotlin] 코틀린 리플렉션을 이용한 타입 파라미터 정보 확인

코틀린에서는 리플렉션(Reflection)을 통해 런타임 시에 클래스의 정보를 조회하고 조작할 수 있습니다. 이 기능을 사용하여 제네릭한 타입에 대한 정보를 확인할 수 있습니다.

예를 들어, 다음과 같이 제네릭 타입을 사용하는 클래스가 있다고 가정해봅시다.

class Box<T>(val item: T)

이 클래스의 제네릭 타입 T에 대한 정보를 리플렉션을 활용해 확인하는 방법을 살펴보겠습니다.

1. 리플렉션을 이용한 타입 파라미터 정보 확인

코틀린의 리플렉션은 KClass를 통해 클래스 정보를 조회할 수 있습니다. 제네릭 타입의 정보를 확인하기 위해서는 KClasstypeParameters 속성을 사용합니다.

import kotlin.reflect.full.createType

fun main() {
    val boxClass = Box::class
    val typeParameters = boxClass.typeParameters

    for (typeParameter in typeParameters) {
        println("Type parameter: ${typeParameter.name}")
    }
}

위의 예제에서는 Box 클래스의 KClass를 조회한 후 typeParameters를 통해 제네릭 타입 파라미터의 이름을 출력합니다.

2. 실행 결과

위의 예제를 실행한 결과는 다음과 같습니다.

Type parameter: T

따라서 Box 클래스의 제네릭 타입 파라미터의 이름이 T임을 확인할 수 있습니다.

이와 같이 코틀린의 리플렉션을 활용하여 타입 파라미터 정보를 확인할 수 있습니다.

마무리

이상으로 코틀린의 리플렉션을 통해 타입 파라미터 정보를 확인하는 방법에 대해 알아보았습니다. 리플렉션은 런타임 시에 시스템의 클래스 및 멤버 정보를 분석하고 조작할 수 있는 강력한 도구이므로, 유용하게 활용할 수 있을 것입니다.

코틀린 공식 문서 - 리플렉션