코틀린 언어 정리 5-1

Reflection

실행시간(runtime)에 프로그램의 구조(함수나 프로퍼티의 이름이나 타입에 대한 정보 등)를 조사할 수 있는 언어와 라이브러리의 기능입니다. 이 기능을 사용하려면 Project의 classpath에 kotlin-reflect.jar 파일의 경로를 추가해야 합니다.


Class References & Bound Class References

문법

클래스 이름에서 KClass<> 객체를 참조하는 문법입니다.

[클래스 또는 객체 이름]::class

[class name]::class 또는 [object]::class 를 통해 KClass<*> 객체를 구할 수 있습니다.


리턴 객체

KClass<T : Any>


예제

import kotlin.reflect.KClass


open class Super {}


class Sub: Super() {}


class Sub1: Super() {}


fun test () {

   val classInfo: KClass<Sub> = Sub::class // class를 통해 ::class로 KClass<T> 객체 참조

   println("classInfo: $classInfo")


   val obj: Super = Sub1()

   println("obj::class.qualfiedName = ${obj::class.qualifiedName}") // 객체를 통해 KClass<T> 객체 참조

}



+ Recent posts