[kotlin] 코틀린 리플렉션을 이용한 부모 클래스 정보 확인

코틀린에서 리플렉션(Reflection)을 사용하면 런타임 시점에 클래스의 속성, 메서드, 생성자 등의 정보를 인스펙팅할 수 있습니다.

부모 클래스의 정보를 확인하는 방법을 알아보겠습니다.

1. 인터페이스로 구현되는 부모 클래스

import kotlin.reflect.full.superclasses

interface ParentInterface {
    // interface 내용
}

open class ChildClass : ParentInterface {
    // 클래스 내용
}

fun main() {
    val superClass = ChildClass::class.superclasses.firstOrNull()
    println("부모 클래스: ${superClass?.simpleName}")
}

위 코드는 superclasses 프로퍼티를 이용하여 ChildClass의 첫 번째 부모 클래스의 정보를 확인합니다. ParentInterface는 첫 번째 부모 클래스로 구현되는 경우가 많기 때문에, superclasses의 첫 번째 요소를 가져와 부모 클래스 정보를 확인합니다.

2. 상속 관계에서의 부모 클래스

import kotlin.reflect.full.superclasses

open class ParentClass {
    // 부모 클래스 내용
}

class ChildClass : ParentClass() {
    // 자식 클래스 내용
}

fun main() {
    val superClass = ChildClass::class.superclasses.firstOrNull()
    println("부모 클래스: ${superClass?.simpleName}")
}

위 코드는 ChildClass의 첫 번째 부모 클래스인 ParentClass의 정보를 확인하는 예시입니다.

이와 같이 코틀린 리플렉션을 이용하여 상속 관계에서의 부모 클래스 정보를 확인할 수 있습니다.

참고문헌: 코틀린 공식 문서 - 리플렉션

위의 예시 코드를 통해 코틀린에서 리플렉션을 이용하여 부모 클래스 정보를 확인하는 방법에 대해 살펴보았습니다.