본문 바로가기
Kotlin

Kotlin - Any 와 * 의 차이

by sinabeuro 2023. 10. 26.
728x90

 

코틀린에서 Any와 *는 다른 목적으로 사용됩니다. 차이점은 다음과 같습니다.

 

Any

Any는 코틀린에서 최상위 타입입니다. Java의 Object와 유사합니다.

모든 코틀린 클래스는 암시적으로 Any를 상속합니다.

Any는 원시 타입, null이 가능한 타입 등 코틀린의 모든 타입을 포함합니다.

예: 함수가 어떤 타입의 객체든 받을 수 있을 때 Any를 사용할 수 있습니다.

fun printHashCode(value: Any) {
    println(value.hashCode())
}

 

 

*(별표, Star-projection)

*는 제네릭에서 사용되며, 타입 인자를 알 수 없거나 관심이 없을 때 사용됩니다. 이것은 Java의 와일드카드인 ?와 유사합니다.

별표 프로젝션을 사용하면, 특정 제네릭 타입에 대해 타입 인자에 대한 정보 없이 작업할 수 있습니다. 이는 주로 읽기 전용 작업에서 유용합니다.

예: 어떤 리스트든 처리할 수 있는 함수를 만들 때:

fun printListSize(list: List<*>) {
    println(list.size)
}

 

이 두 개념을 간단히 요약하면, Any는 코틀린의 최상위 타입을 나타내며, *는 제네릭 타입 인자를 특정하지 않을 때 사용되는 와일드카드입니다.

728x90

댓글