타입 토큰(type token)
-
Item 33. 타입 안전 이종 컨테이너를 고려하라Book/Effective Java 3E 2022. 12. 23. 21:00
Set에는 원소의 타입을 뜻하는 단 하나의 타입 매개변수만 있으면 되며, Map에는 키와 값의 타입을 뜻하는 2개만 필요합니다. 데이터베이스의 경우에는 행(row)에 해당하는 임의 개수의 열(column)이 필요합니다. 이런 경우, 키를 매개변수화한 다음 컨테이너에 값을 넣거나 뺄 때 매개변수화한 키를 함께 제공하면 됩니다. 이러한 설계 방식을 타입 안전 이종 컨테이너 패턴(type safe heterogeneous container pattern)이라 합니다. 다음은 간단한 예로 타입별로 즐겨 찾는 인스턴스를 저장하고 검색할 수 있는 Favorites 클래스입니다. 각 타입의 Class 객체를 매개변수화한 키 역할로 사용합니다. package effectivejava.chapter5.item33; im..
-
Item 26. 로 타입은 사용하지 말라Book/Effective Java 3E 2022. 11. 8. 22:00
클래스와 인터페이스 선언에 타입 매개변수(type parameter)가 쓰이면, 이를 제네릭 클래스 혹은 제네릭 인터페이스라 합니다.[JLS, 8.1.2, 9.1.2] 예컨대 List 인터페이스는 원소의 타입을 나타내는 타입 매개변수 E를 받습니다. 그래서 이 인터페이스의 완전한 이름은 List지만, 짧게 List라고도 자주 씁니다. 제네릭 클래스와 제네릭 인스턴스를 통틀어 제네릭 타입(generic type)이라 합니다. 각각의 제네릭 타입은 일련의 매개변수화 타입(parameterized type)을 정의합니다.[JLS, 4.5] 예컨대 List은 원소의 타입이 String인 리스트를 뜻하는 매개변수화 타입입니다. 여기서 String이 정규(formal) 타입 매개변수 E에 해당하는 실제(actual..