클래스 옆에 ' < T > '를 붙이면 됨 (T: 타입변수)
여러개인 경우에는 콤마를 구분자로 나열
Ex) Map<K, V>
지네릭클래스의 객체를 생성할 때는 참조변수와 생성자에 실제 타입을 지정해주어야 함
Ex)
class Box<T> {
T item;
void setItem(T item) { this.item = item; }
T getItem( ) { return item; }
}
Box<String> b = new Box<String> ( );
// 위처럼 선언시 아래와 같이 됨
class Box {
String item;
void setItem(String item) { this.item = item; }
String getItem( ) { return item; }
}
class Box < T > { }
static멤버에 타입변수 T를 사용할 수 없음(T는 인스턴스변수로 간주되기 때문, static멤버는 인스턴스 참조 불가)
지네릭 타입의 배열 생성 불가
Ex) T [ ] tmpArr = new T [itemArr.length]
;
(하지만 지네릭 배열 타입의 참조변수를 선언하는 것은 가능
T [ ] itemArr;
)
java의 정석 chapter12