Any타입 변수는 자료형이 특별히 정해 지지 않은 경우에 사용한다.
코틀린 에서 Any은 모든 클래스(변수) 의 엄마 이다.
Int, 나 String 나 사용자가 만든 클래스 까지 모두 Any형의 자식인 셈.
모든 클래스(변수)의 엄마니까 언제든 모든 자료형으로 자동변환이 가능하다.
이런것을 묵시적변환 이라고 하는데 다음 예제를 보자
println("===============묵시적변환 Any 테스트 START================")
var anyTest: Any = 1
if (anyTest is Int) {
typeStr = "anyTest Int:"
}else if(anyTest !is Int){
typeStr = "anyTest 머임:"
}
println("$typeStr $anyTest") // 변환전 타입을 확인
anyTest = 45L // Long 타입을 대입하여 자동변환을 확인해봄
if (anyTest is Long) {
typeStr = "anyTest Long:"
}else if(anyTest is Int){
typeStr = "anyTest 아직 Int임:"
}
println("$typeStr $anyTest") // Long 타입으로 자동
println("변수 anyTest의 변환된 타입은: ${anyTest.javaClass}") // anyTest의 자바 기본형을 출력하면 long
println("===============묵시적변환 Any 테스트 E N D================")
결과는
===============묵시적변환 Any 테스트 START================
anyTest Int: 1
anyTest Long: 45
변수 anyTest의 변환된 타입은: long
===============묵시적변환 Any 테스트 E N D================
Any 타입의 형변환 되는 과정을 봤다.
근데 참고로 실무에서는 마구잡이로 쓰진 않는다.
코틀린에 어떤 Error 가 있는지 궁금하면?? 클릭 -> [코틀린] 오류코드 정리 :: 리뎁
자료형 과 변수가 궁금 하다면 ? 클릭 -> [코틀린] 자료형과 변수 & 엘비스 연산자 :: 리뎁
이중등호 삼중등호가 궁금하면? 클릭 -> [코틀린] 자료형 비교/변환 - 이중등호-삼중등호 :: 리뎁
코틀린 스마트캐스트 ? 클릭 -> [코틀린] 스마트캐스트 :: 리뎁
'Programming > Kotlin' 카테고리의 다른 글
[코틀린] 자료형검사 :: 리뎁 (0) | 2019.12.01 |
---|---|
[코틀린] 스마트캐스트 :: 리뎁 (0) | 2019.12.01 |
[코틀린] 자료형 비교/변환 - 이중등호-삼중등호 :: 리뎁 (0) | 2019.11.17 |
[코틀린] 자료형과 변수 & 엘비스 연산자 :: 리뎁 (0) | 2019.11.16 |
[코틀린] Module, Package, File :: 리뎁 (0) | 2019.11.10 |