Kotlin

::class.java는 무엇일까

서퍼리노 2023. 2. 7. 04:17
728x90

안드로이드를 하다 보면 Activity를 가리키는 상황에서 MyActivity::class.java나 Class::class.java와 같은
코드를 사용하는 경우들이 종종 있습니다.

 

분명 코틀린을 사용하고 있는데 java가 나오는 이유가 무엇일까요?

 

전 글에서 더블 콜론에 대해 설명하며 짧게 지나간 내용이 있습니다.

 

Java와 Kotlin의 Class는 다릅니다.

Java의 클래스의 경우 Calss로 반환되지만

Kotlin의 클래스의 경우 KClass로 반환됩니다.

 

안드로이드를 하며 클래스를 반환하는 대부분의 경우에선

Java 클래스인 Class를 필요로 합니다.

 

따라서 저희는 Kotlin을 사용하기 때문에 

KClass를 Class로 변환해야 합니다.

 

위 메서드는 KClass를 반환하는 방법을 알려줍니다.

확장 프로퍼티 .java를 이용하여 KClass를 Class타입으로 반환하여 줍니다.

 

정리하자면

::class.java를 사용하는 이유는
KClass로부터 Class 값으로 받아 넘겨주기에 사용하는 것입니다.

728x90