더북(TheBook)

List<*>를 사용하면 List에 담긴 원소의 타입 정보를 모두 잃어버린다. 예를 들어 List<*>에서 얻은 원소는 Any?에만 대입할 수 있다.

ExtensionProperties/AnyFromListOfStar.kt

import atomictest.eq

fun main() {
  val list: List<*> = listOf(1, 2)
  val any: Any? = list[0]
  any eq 1
}

List<*>에 저장된 값이 널이 될 수 있는 타입인지에 대해서도 아무 정보가 없다. 따라서 이런 경우 해당 값을 Any? 타입의 변수에만 대입할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.