Java 제네릭은 클래스와 메서드가 다루는 타입을 매개변수로 표현하는 기능이다. 코드 재사용과 컴파일 시 타입 검사를 돕는다.
Java 실행과 API |
|---|
JVM · javac · Java 바이트코드 · Java 가비지 컬렉션 · Java 제네릭 |
Java 인터페이스 · Java 예외 처리 · Java Stream API · Java Optional · Java 리플렉션 |
원리
타입 매개변수를 통해 컬렉션 원소나 반환값의 관계를 명시한다. 적절히 사용하면 임의 Object로 처리할 때 필요한 형변환을 줄일 수 있다.
예시
List<String>은 문자열 목록이라는 의도를 표현한다. 잘못된 타입의 값을 넣는 호출을 컴파일 단계에서 발견하도록 돕는다.
주의할 점
제네릭의 타입 관계는 원래 클래스 상속 관계와 그대로 같지 않다. raw 타입을 섞으면 안전성이 약해지며 타입 소거와 와일드카드의 의미를 이해해야 한다.