Kotlin은 안전하지 않은 형 변환을 막기 위해 자동 형 변환을 지원하지 않는다.toInt() , toFloat() , toString()
// val number: Int = 10
val number = 10
val longNumber = number.toLong()
🫧
Kotlin은 명시적으로 타입 선언을 하지 않아도 된다.
as 연산자를 사용하여 안전하게 형 변환을 시도할 수 있다.as?를 사용하면 변환에 실패할 경우 null을 반환한다.fun printAgeIfPerson (obj: Any) {
val person: Person? = obj as? Person
println(person?.age)
}
Java의 instanceof 와 비슷하게 Kotlin에서는 특정한 변수의 타입을 확인하기 위해 is 문을 사용할 수 있다.Smart Cast)란 타입 검사와 함께 해당 타입으로의 자동 형 변환되는 기능으로, Kotlin에서는 is 문을 통해 특정한 타입임이 확인되면 자동으로 형변환된다. // `obj` 가 `Person` 타입인것을 인지하여 `age` 메서드 호출이 가능하다.
fun printAgeIfPerson (obj: Any) {
if (obj is Person) {
println(obj.age)
}
출처
Java 개발자의 Kotlin 기본 문법 정복기
Android Kotlin 형 변환(Type Casting)
[Kotlin] 스마트 캐스트(Smart Cast) 기능을 사용한 안전한 타입 변환: is, as