자바에서 제네릭이란 데이터의 타입을 일반화 한다는 것이다.
제네릭은 클래스나 메서드에서 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다.
컴파일 시에 타입을 검사하면 다음과 같은 장점을 얻을 수 있다.
- 클래스나 메서드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다.
- 반환값에 대한 타입 변환 및 검사에 들어가는 노력을 줄일 수 있다.
제네릭이 없을 당시에는 여러 타입을 사용하는 대부분의 클래스나 메서드에서 인수나 반환값으로 Object타입을 사용했다. 이 경우 반환된 Object 객체를 다시 원하는 타입으로 바꿀 필요가 있었고 때문에 오류 가능성도 발생한다.
제네릭을 사용하면 컴파일 시에 미리 타입이 정해지므로 타입 검사나 타입 변환같은 작업을 생략할 수 있다.