Android/안드로이드 스터디(Kotlin)
Kotlin] 33. 타입 매개변수 비교하기(reified)
김마리님
2020. 12. 11. 10:33
이전에 instanceof와 유사한 함수로 is 키워드를 쓴다고 했다.
그런데, 제네릭에서 타입을 비교하려고 코드를 쓰면..
T에서 컴파일 오류가 발생한다.
무슨 오류인가.. 보면
지워진 유형에 대해서 검사할 수 없다고 하는데, 이건 JVM 때문이다. JVM이 제네릭으로 선언된 일반 유형을 다 지워버리기 때문에, JVM에게 지우지 말라고 요청을 드려야 한다. 그 명령어가 reified이다. 이걸 제네릭 타입 T 앞에 붙여준다.
package refineEx
inline fun <reified T> check() {
val number = 0
if (number is T) {
println("T는 Int 타입입니다")
}
}
fun main() {
check<Int>()
}
결과 :
T는 Int 타입입니다
반응형