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
'Kotlin' 카테고리의 다른 글
Kotlin - 테스트 코드 어노테이션 및 MockMvc 테스트 (0) | 2024.01.10 |
---|---|
Kotlin - 일급 시민(First-class citizen) (0) | 2023.08.08 |
Kotlin - 다양한 함수 (0) | 2023.05.06 |
Kotlin - 컬렉션 (0) | 2023.05.06 |
코틀린 - Object 함수(Companion) (0) | 2023.05.01 |
댓글