티스토리 뷰

반응형

자바에있는 상위 타입인 Object는 코틀린에는 없습니다.

그 대신 코틀린에는 Object와 비슷한 상위 타입인 Any가 있습니다.

 

fun main(args: Array<String>) {
	println(typeCheck(null))
	println(typeCheck(1))
	println(typeCheck("1"))
	println("========================")
	
	val value = 7
	// int 타입인 value의 값을 to'Type'()을 이용하여 강제 형변환
	println(typeCheck2(value.toByte()))
	println(typeCheck2(value.toShort()))
	println(typeCheck2(value))
	println(typeCheck2(value.toLong()))
	println(typeCheck2(value.toFloat()))
	println(typeCheck2(value.toDouble()))
	println(typeCheck2(true))
	println(typeCheck2(value.toChar()))
	println(typeCheck2(value.toString()))
	println(typeCheck2(null))
}

// Any는 자바에서 Object와 비슷합니다.
// is 는 자바에서 instanceof와 처럼 타입을 검사하는 용도로 사용합니다.
// 검사 시 자동 형변환이 일어나므로 명시적으로 타입을 캐스팅 할 필요가 없습니다.
fun typeCheck(obj: Any?): String {
	if (obj !is String) return "Not a string, $obj"
	else return "string, $obj"
}

fun typeCheck2(obj: Any?) =
	when (obj) {
		is Byte -> "Byte, $obj"
		is Short -> "Short, $obj"
		is Int -> "Int, $obj"
		is Long -> "Long, $obj"
		is Float -> "Float, $obj"
		is Double -> "Double, $obj"
		is Boolean -> "Boolean, $obj"
		is Char -> "Char, $obj"
		is String -> "String, $obj"
		else -> "Unknown, $obj"
	}

결과

Not a string, null
Not a string, 1
string, 1
========================
Byte, 7
Short, 7
Int, 7
Long, 7
Float, 7.0
Double, 7.0
Boolean, true
Char, 
String, 7
Unknown, null

 

위 코드를 이해하기 위해서는 아래 코틀린 문법이 필수입니다.

2019/05/19 - [Kotlin] - 코틀린 기본 문법) 1. 코틀린 변수 정의하기

2019/05/19 - [Kotlin] - 코틀린 기본 문법) 2. 코틀린 함수 정의하기

2019/05/19 - [Kotlin] - 코틀린 기본 문법) 3. 코틀린 문자열 템플릿 String Template

2019/05/19 - [Kotlin] - 코틀린 기본 문법) 4. 코틀린에서 null 사용 및 null 값 처리

2019/05/19 - [Kotlin] - 코틀린 기본 문법) 5. 코틀린 조건식 if, when, switch 문 사용하기

반응형
댓글
최근에 올라온 글
최근에 달린 댓글