[kotlin] 코틀린 리플렉션을 이용한 메소드 시그니처 확인

먼저, 리플렉션을 사용하기 위해 KClass를 가져옵니다. 그 다음 KFunction을 사용하여 해당 클래스의 메소드를 가져올 수 있습니다. 이제 메소드의 이름, 매개변수 타입 및 반환 타입 등의 정보를 확인할 수 있습니다.

import kotlin.reflect.full.*

class MyClass {
    fun myMethod(name: String, age: Int): String {
        return "Hello, $name! Your age is $age."
    }
}

fun main() {
    val myClass = MyClass::class
    val function = myClass.declaredMemberFunctions.find { it.name == "myMethod" }
    
    function?.let {
        println("Method name: ${it.name}")
        println("Return type: ${it.returnType}")
        it.parameters.forEach { param ->
            println("Parameter: ${param.name} - ${param.type}")
        }
    }
}

위 예제에서는 MyClassmyMethod 메소드의 시그니처를 확인하는 방법을 보여줍니다. 프로그램을 실행하면 메소드의 이름, 반환 타입 및 매개변수의 정보가 출력됩니다.

이와 같이 코틀린의 리플렉션을 활용하면 메소드의 시그니처를 동적으로 확인할 수 있습니다.

참고 자료: