728x90
코틀린에는 Any라는 타입이 있습니다.
해당 타입은 모든 타입의 뿌리가 되는 클래스입니다.
우리가 사용하는 Int, String 등과 같은 클래스도 마찬가지이고,
직접 코드를 짜며 만드는 클래스들까지 모두 Any의 자식 클래스라고 볼 수 있습니다.
즉 Kotlin의 슈퍼 클래스이다.
Any형은 무엇이든 될 수 있기에 언제든지 필요한 자료형으로 자동 변환할 수 있습니다.
이를 묵시적 변환이라고 합니다.
코틀린에서 타입체크
any 클래스의 멤버변수인 javaClass는 해당 변수가 어떤 기본형을 가지고 있는지 출력해 줍니다.
위에 코드를 보면 a는 Any라는 타입으로 선언이 되었지만
1이라는 값을 넣음으로써 Integer라고 확인되었고,
Hello라는 값을 넣음으로써 String으로 확인되었습니다.
타입별로 관리하기
코틀린으로 작업을 하다 보면 생각보다 타입을 확인해야 하는 작업이 종종 있습니다.
이번에는 타입을 확인하여 그에 따라 작업을 진행하도록 코드를 작성해 보겠습니다.
코틀린에서는 is라는 키워드로 해당 변수의 타입을 검사할 수 있습니다.
클래스의 타입은 기본형이 아닌 사용자가 젇의한 클래스도 확인할 수 있기 때문에
interface Error {
}
class AError(): Error {
}
class BError(): Error {
}
이런 식으로 클래스들을 선언한 이후
fun main() {
logic(AError())
logic(BError())
}
fun logic(error: Error) {
when(error) {
is AError -> {
println("A Error")
}
is BError -> {
println("B Error")
}
}
}
해당 클래스들을 확인하면
이런식으로 해당하는 분기문들이 잘 작동하는 것을 알 수 있습니다.
728x90
'Kotlin' 카테고리의 다른 글
매개변수 활용하기 - [Doit! 코틀린 프로그래밍] (0) | 2023.01.24 |
---|---|
예외를 활용해 코드에 제한 걸기 (0) | 2023.01.24 |
코틀린의 스마트 캐스트(Smart cast)란? (0) | 2023.01.21 |
코틀린에서 null을 관리하는 방법 [Do it! 코틀린 프로그래밍] (0) | 2023.01.08 |
코틀린의 자료형 [Do it! 코틀린 프로그래밍] (0) | 2023.01.08 |