[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
의 정보를 확인하는 예시입니다.
이와 같이 코틀린 리플렉션을 이용하여 상속 관계에서의 부모 클래스 정보를 확인할 수 있습니다.
참고문헌: 코틀린 공식 문서 - 리플렉션
위의 예시 코드를 통해 코틀린에서 리플렉션을 이용하여 부모 클래스 정보를 확인하는 방법에 대해 살펴보았습니다.