목록제네릭 (2)
초보개발자 긍.응.성
제네릭이 자바 8 이후부터등장했다. 제네릭 등장 이전에는 로 타입을 이용하였으며 이는 타입 안전하지 못했다. 특징 제네릭은 컴파일 타임에 타입에 대하여 체크를 한다. 또한 컴파일 타임에 타입에 대한 검증하기에 런타임에는 타입이 소거된다. 제네릭 클래스와 제네릭 메서드 제네릭을 사용한다면 타입에 사용할 여러 타입에 대하여 별도의 클래스 또는 메서드를 만들어 줄 필요 없다. 제네릭 클래스 또는 제네릭 메서드를 이용하여 한번에 처리할 수 있기 때문이다. 비검사 경고 제네릭을 사용하기 시작하면 수많은 unchecked 경고를 볼 수 있다. 사용한 제네릭에 타입 안전성이 보장되지 않다면 이러한 경고들이 발생한다. 될 수 있는 한 모든 unchecked 경고를 없애자. 없앨 수 없지만 타입 안전하다 확신할 수 있다..
용어 제네릭 클래스 : 클래스의 선언에 타입 매개변수가 쓰인 클래스 제네릭 인터페이스 : 인터페이스의 선언에 타입 매개변수가 쓰인 인터페이스 제네릭 타입 : 제네릭 클래스와 제네릭 인터페이스를 통틀어 제네릭이라고 부른다 매개변수화 타입 (parameterized type) : 제네릭 타입에 실제 매개변수가 함께 선언된 타입 로 타입 (raw type) : 제네릭 타입에서 타입 매개변수를 사용하지 않을 때의 타입 예를 들어 매개변수화 타입이 List 이라면 실제 타입 매개변수는 String이며 로 타입은 List이다. 제네릭 타입을 하나 정의하면 그에 딸린 로 타입(raw type)도 함께 정의된다. 로 타입의 사용 제네릭 대신 로 타입을 사용해도 동작을 하지만 좋은 예가 아니다 (하위 호환성을 위해 지원..