제네릭 타입 : 제네릭 타입은 자바에서 컬렉션과 같은 클래스나 인터페이스를 정의할 때, 타입 파라미터를 사용하여 타입 안정성을 확보하는 방법이다. 즉, 클래스나 인터페이스를 선언할 때 실제 타입이 아닌 타입 매개변수를 사용하여 일반화된 형태로 선언한다.
// 제네릭을 사용하지 않은 ArrayList
List list = new ArrayList();
list.add("Hello");
String item = (String) list.get(0); // 형변환 필요
// 제네릭을 사용한 ArrayList
List<String> list = new ArrayList<>();
list.add("Hello");
String item = list.get(0); // 형변환 필요 없음
결론 : 클라이언트에서 직접 형변환해야 하는 타입보다 제네릭 타입이 더 안전하고 쓰기 편하다. 그러니 새로운 타입을 설계할 때는 형변환 없이도 사용할 수 있도록 하라. 그렇게 하려면 제네릭 타입으로 만들어야 할 경우가 많다. 기존 타입 중 제네릭이었어야 하는 게 있다면 제네릭 타입으로 변경하자. 기존 클라이언트에는 아무 영향을 주지 않으면서, 새로운 사용자를 훨씬 편하게 해주는 길이다.
'이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] 아이템 31. 한정적 와일드카드를 사용해 API 유연성을 높여라 (0) | 2024.04.01 |
---|---|
[이펙티브 자바] 아이템 30. 이왕이면 제네릭 메서드로 만들라 (0) | 2024.04.01 |
[이펙티브 자바] 아이템 28. 배열보다는 리스트를 사용하라 (0) | 2024.03.28 |
[이펙티브 자바] 아이템 27. 비검사 경고를 제거하라 (0) | 2024.03.27 |
[이펙티브 자바] 아이템 26. 로 타입은 사용하지 말라 (0) | 2024.03.27 |