Java - 기본 타입간의 변환은 암식적으로 이루어질 수 있다.
Kotlin - 기본 타입간의 변환은 명시적으로 이루어져야 한다.
val number1: Int = 4
val number2: Long = number1.toLong()
val number1 = 3
val number3 = 5
val result = number1 / number3.toDouble()
to변환타입()
을 사용하여 명시적으로 변환.
val number1: Int? = 3
val number2: Long = number1?.toLong() ?: 0
세이프콜과 엘비스 연산자를 사용하여 처리할 수 있다.
fun printAgeIfPerson(obj: Any) {
if (obj is Person) {
val person = obj as Person
println(person.age)
}
is
는 자바의 instanceof
와 똑같은 의미로,
obj가 person이면 true
, person이 아니면 false
를 반환.
as Person
은 자바에서 (Person) obs
로,
obj 라는 변수를 Person타입으로 간주한다는 것.
fun printAgeIfPerson2(obj: Any) {
if (obj !is Person) {
}
}
is
앞에 !
를 붙이면 반대의 의미가 된다.
fun printAgeIfPerson3(obj: Any) {
val person = obj as? Person
println(person?.age)
}
person이 null이 아니면 변환하고,null이면 전체가 null로 변환하여 반환
As?
= 안전한 타입 형변환