책/EFFECTIVE JAVA
[제네릭]아이템26. 로 타입은 사용하지 말라
미로처럼
2024. 10. 28. 23:34
728x90
제네릭 클래스와 제네릭 인텊에스를 통틀어 제네릭 타입이라 한다.
가각의 제네릭 타입은 일련의 매개변수화 티입(Parameterized type)을 정의한다.
로 타입을 사용하면 런타임에 예외가 일어날 수 있으니 사용하면 안된다.
로 타입이란 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않을때를 말한다.
로 타입은 제네릭이 도입되기 이전 코드와의 호환성을 위해 제공될 뿐이다. 빠르게 훑어보자면, Set<Object>는 어떤 타입의 객체도 저장할 수 있는 매개변수화 타입이고, Set<?>는 모종의 타입 객체만 저장할 수 있는 와일드카드 타입이다. 그리고 이들의 로 타입인 Set은 제네릭 타입시스템에 속하지 않는다. Set<Object>와 Set<?> 안전하지만, 로 타입인 Set은 안전하지 않다.
728x90