자바에서 제네릭이란 데이터의 타입을 일반화한다는 것을 의미한다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이라고 볼 수 있다.
컴파일 시에 미리 타입 검사를 수행하면 다음과 같은 장점을 가진다.
class MyArray<T> {
T element;
void setElement(T element) { this.element = element; }
T getElement() { return element; }
}
위에서 사용된 'T'를 타입 변수(type variable)라고 하며, 임의의 참조형 타입을 의미한다. 꼭 'T'뿐만 아니라 어떤 문자를 사용해도 상관없다. 여러 개의 타입 변수는 쉼표로 구분하여 명시할 수 있다.