[Effective Java] 로 타입은 사용하지 말라


[Effective Java] 로 타입은 사용하지 말라

제네릭 클래스, 제네릭 인터페이스 클래스와 인터페이스 선언에 타입 매개변수가 쓰이면 제네릭 클래스, 인터페이스라고 부름 제네릭 클래스와 인터페이스를 통틀어 제네릭 타입이라고 함 각각의 제네릭 타입은 매개변수화 타입(Parameterized Type)을 정의 List<String>과 같이 정의 원소의 타입이 String인 리스트를 뜻하는 매개변수화 타입 로 타입 제네릭 타입을 하나 정의하면 Raw Type도 함께 정의된다. Raw Type은 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않을 때를 의미 List<E>의 Raw Type은 List이다. Raw Type은 타입 선언에서 제네릭 타입 정보가 전부 지워진 것처럼 동작함 Raw 타입을 사용하면 Cat을 넣어야 되는 곳에 Dog을 넣어도 컴파일 에러가 발생하지 않는다. 런타임 에러 시점에서 실수했다는 걸 발견할 수 있다. 제네릭을 사용하면 타입 선언 자체에 Cat만 넣어야 된다는 걸 알 수 있다. Dog을 넣는 코드를 작성하면 컴...


#EffectiveJava #공변 #로타입 #무변성 #반공변 #이펙티브자바 #자바 #제네릭

원문링크 : [Effective Java] 로 타입은 사용하지 말라