public class GenericTest<T> {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
// 제네릭 클래스의 T(타입)에 해당하는 부분이 모두 Integer로 변환
GenericTest<Integer> gt = new GenericTest<Integer>();
제네릭 클래스의 다이아몬드 연산자(<>) 안에는 4가지 타입을 지정 가능.
1. E : Element
2. T : Type
3. K : Key
4. V : Value
<?>: 모든 타입을 허용하는 와일드 카드
<? extends T>: T 타입 또는 T의 하위 타입을 허용하는 와일드 카드
<? super T>: T 타입 또는 T의 상위 타입을 허용하는 와일드 카드
// Number이거나 Number의 자손 타입만 제네릭 가능
public class NumberBox<T extends Number> {
private T number;
public void setNumber(T number) {
this.number = number;
}
public T getNumber() {
return this.number;
}
}