조슈아 블로크 님의 "Effective Java" 책을 정리한 포스팅 입니다.1. 로 타입은 사용하지 말라타입제네릭 타입제네릭 클래스: 클래스 선언에 타입 매개변수가 쓰인 클래스제네릭 인터페이스: 인터페이스 선언에 타입 매개변수가 쓰인 인터페이스 매개변수화 타입타입 매개변수의 타입 로 타입제네릭 타입에서 타입 매개변수를 전혀 사용하지 않을 때호환성 때문에 남아있음 제네릭 타입 권고타입 안정성컬렉션에서 원소를 꺼내는 모든 곳에 보이지 않는 형변환을 추가 디버깅오류는 가능한 컴파일 타임에 발견하는 것이 좋음런타임에 발견 시, 원인 제공 코드를 발견하기 어려움 제네릭 규칙소거 방식컴파일 후, 런타임에 타입 정보가 제거되는 방식하위 호환성을 위해 소거 방식으로 구현되었음 하위 타입 규칙List objectLi..