program tip

Kotlin : KClass의 getClass ()와 동일

radiobox 2020. 10. 27. 08:01
반응형

Kotlin : KClass의 getClass ()와 동일


Java에서는 다음 getClass()과 같이 변수의 클래스를 해결할 수 있습니다 something.getClass(). Kotlin에서는 something.javaClass어느 것이 좋은지 알고 있지만 KClass비슷한 방식으로 얻을 수 있기를 원합니다 . 나는 Something::class구문을 보았지만 이것은 내가 필요한 것이 아닙니다. 변수의 KClass를 가져와야합니다. 그러한 기능이 존재합니까?


Kotlin 1.1 이후이를 달성하는 가장 쉬운 방법은 클래스 참조 구문입니다 .

something::class

Kotlin 1.0을 사용하는 경우 .kotlin확장 속성 을 호출하여 얻은 자바 클래스를 KClass 인스턴스로 변환 할 수 있습니다 .

something.javaClass.kotlin

편집 : 아래의 주석을 참조하고 위의 Alexander의 답변을 참조하십시오. 이 조언은 원래 Kotlin 1.0에 대한 것이었고 이제는 쓸모없는 것 같습니다.

이 언어는 아직 이것을 얻는 직접적인 방법을 지원하지 않으므로 지금은 확장 메서드를 정의하는 것이 좋습니다.

fun<T: Any> T.getClass(): KClass<T> {
    return javaClass.kotlin
}

val test = 0
println("Kotlin type: ${test.getClass()}")

또는 속성을 선호하는 경우 :

val<T: Any> T.kClass: KClass<T>
    get() = javaClass.kotlin

val test = 0
println("Kotlin type: ${test.kClass}")

참고 URL : https://stackoverflow.com/questions/32655216/kotlin-equivalent-of-getclass-for-kclass

반응형