제네릭 2

[이팩티브 자바3] 제 5장. 제네릭

1. 로 타입(raw type)은 사용하지 말라. 로타입(raw type) 이란? 로타입 은 제네릭(Generic) 타입에서 타입 매개변수를 전혀 사용하지 않은 때를 말한다. 제네릭을 지원하기 전에는 컬렉션을 다음과 같이 선언했다. // 컬렉션의 로 타입 - 따라하지 말 것! // Stamp 인스턴스만 취급한다. private final Collection stamps = ...; // 실수로 동전을 넣는다. stamp.add( new Coin(...) ); // 반복자의 로 타입 - 따라하지 말 것! for( Integer i = stamp.iterator(); i.hasNext(); ) { Stamp stamp = (Stamp) i.next();// ClassCastException을 던진다. Sta..

[Java] Generics(제네릭)

JAVA 제네릭(Generics) JDK 1.5 버전에 처음 도입되었으며, 클래스 내부에서 사용한 데이터 타입을 외부에서 지정하는 기법을 의미한다. 타양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 한다. 제네릭은 크게 2가지의 장점을 가지고 있다. 타입의 안전성 : 의도하지 않은 타입의 객체가 저장되는 것을 막고, 다른 타입의 객체로 인한 타입 형태가 맞지 않아 발생하는 문제를 없애준다. 불필요한 형변환을 줄여 코드의 간결함 : 타입을 미리 명시함으로써 다른 타입의 객체가 저장되지 않아 객체를 꺼내 사용할 시 형변환을 통한 타입을 맞출 필요가 없어 코드를 간결하게 줄일 수 있다. 1. 제네릭 타입 - 대표적으로 많이 사용되는 클래스는 ArrayList가 있다. - 타입을 파..

Java 2020.09.29