들어가기 전에
제네릭은 자바 5부터 사용할 수 있습니다.
제네릭을 지원하기 전에는 컬렉션에서 객체를 꺼낼 때마다 형변환을 해야 했습니다.
그래서 누군가 실수로 엉뚱한 타입의 객체를 넣어두면, 런타임에 형변환 오류가 나곤 했습니다.
반면, 제네릭을 사용하면 컬렉션이 담을 수 있는 타입을 컴파일러에게 미리 알려주어 컴파일러가 엉뚱한 타입의 객체를 넣으려는 시도를 컴파일 과정에서 차단하여 더 안전하고 명확한 프로그램을 만들 수 있습니다.
또한, 컴파일러가 알아서 형변환 코드를 추가해주기도 합니다.
이번 장에서 제네릭의 이점을 최대한 살리고 단점을 최소화하는 방법을 알아봅시다.
용어 정리
한글 용어 | 영문 용어 | 예 |
매개변수화 타입 | parameterized teype | List<String> |
실제 타입 매개변수 | actual type paramter | String |
제네릭 타입 | generic type | List<E> |
정규 타입 매개변수 | formal type paramter | E |
비한정적 와일드카드 타입 | unbounded wildcard type | List<?> |
로 타입 | raw type | List |
한정적 타입 매개변수 | bounded type paramter | <E extends Number> |
재귀적 타입 한정 | recursive type bound | <T extends Comparable<T>> |
한정적 와일드카드 타입 | bounded wildcard type | List<? extends Number> |
제네릭 메서드 | gereric method | static <E> List<E> asList(E[] a) |
타입 토큰 | type token | String.class |
출처
https://www.yes24.com/Product/Goods/65551284
'책 > effective java' 카테고리의 다른 글
[effective java] item 27. 비검사 경고를 제거하라 (0) | 2023.08.28 |
---|---|
[effective java] item 26. 로 타입은 사용하지 말라 (0) | 2023.08.28 |
[effective java] item 25. 톱 레벨 클래스는 한 파일에 하나만 담으라 (0) | 2023.08.28 |
[effective java] item 24. 멤버 클래스는 되도록 static으로 만들라 (0) | 2023.08.21 |
[effective java] item 23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라 (0) | 2023.08.21 |