GENERIC

Generic은 타입을 파라미터화해서 컴파일시 구체적인 타입이 결정되도록 한다

-      컴파일시 강한 타입 체크를 할 수 있다

-      타입변환을 제거할 수 있다. 기본적으로 object타입으로 저장을 하는데, 만약 스트링으로 사용하고 싶으면 형변환을 해야한다. 하지만 제너릭을 사용하면 처음부터

 

<? extends 클래스> = 상위에 있는 클래스들에 대한 제한

<? Super 클래스> = 하위 클래스에 있는 클래스 제한

Generic를 통한 배열을 선언할때는 new int[10] 이렇게 하면 에러가 난다. 왜냐하면 확정이 안된 타입의 변수는 선언이 불가능해서, object타입으로 선언을 해주고, 제너릭 타입으로 형변환을 시켜주면 된다.

Ex. (T)(new Object[capacity])

+ Recent posts