제네릭이란
- 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법
- 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미
- 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입
제네릭 목적
- 객체의 타입을 컴파일시점에 체크하기 때문에 객체 타입 안정성을 높이고 형변환의 번거로움이 줄어든다
- 의도하지 않은 타입의 객체를 저장하는 것을 막는다
- 저장된 객체를 꺼내올때 원래 타입과 다른 타입으로 형변환 되어 발생할 수 있는 오류를 줄여준다
제네릭 용어
class Box<T> {}
- Box<T> : 제네릭 클래스 (T Box)라고 읽는다
- T: 타입 매개변수 , 타입 변수 , 타입 문자
- Box: 원시 타입
- 타입 문자 T는 제네릭 클래스 Box<T>의 타입 변수 또는 타입 매개변수 라고 한다
- 즉 , Box라는 클래스를 호출할때 어떤 타입을 대입해서 호출할 것인지가 중요하다