-
Kotlin) 코틀린 ::class.java와 리플렉션(Reflection)Kotlin 2020. 12. 14. 17:35
MainActivity::class MainActivity::class.java
코틀린에서 액티비티를 넘길 때 .java를 붙여 코드를 작성하는 것을 볼 수 있습니다.
그 이유는 자바에서 쓰는 클래스와 코틀린에서 쓰는 클래스가 다르기 때문입니다.
자바에서는 Class를 리턴하는 반면, 코틀린에서는 클래스명::class를 하게 되면 KClass를 리턴합니다.
그렇기 때문에 KClass를 Class로 바꿔줘야 하는데 이때 .java를 붙여 자바 클래스 값을 받습니다.
리플렉션(Reflection)
- 코드를 작성하는 시점에 런타임상 컴파일 된 바이트 코드에서 내가 작성한 코드가 어디에 위치하는지 알 수 없습니다.
- 그래서 바이트 코드를 이용해 내가 참조하려는 값을 찾기위해 사용됩니다.
코틀린에서 더블콜론을 이용해 클래스를 참조할 수도 있지만, 아래와 같이 함수도 참조 할 수 있습니다.
fun main(args: Array<String>) { val numbers = listOf(1, 2, 3, 4, 5) numbers.filter(::isOdd) .forEach { println(it) } } fun isOdd(num: Int): Boolean = num % 2 != 0
Reference
반응형'Kotlin' 카테고리의 다른 글
Kotlin) 코틀린 inner 클래스 알아보기 (0) 2020.12.18 Kotlin) 코틀린 infix 키워드 알아보기 (0) 2020.12.15 Kotlin) 코틀린 Collection - List, Map, Set 사용법 (0) 2020.12.15 Kotlin) inline 함수와 고차함수 알아보기 (0) 2020.12.15 Kotlin) 코틀린 안드로이드 익스텐션 폐기 - Android Kotlin Extensions Will be removed in a future (0) 2020.12.08