Java 5부터 가능
클래스명<실제 제네릭 타입> 참조 변수명 = new 클래스명<실제 제네릭 타입>();
Java 7부터 가능
클래스명<실제 제네릭 타입> 참조 변수명 = new 클래스명<>();
| 제네릭 타입 변수 | 의미 |
|---|---|
| T | 타입(Type) |
| K | 키(Key) |
| V | 값(Value) |
| N | 숫자(Number) |
| E | 원소(Element) |
class MyClass<T> {
private T t;
... // getter/setter
}
MyClass<String> mc1 = new MyClass<>(); // Primitive 타입은 사용 안됨
mc1.setT("안녕");
class GenericMethods {
public <T> T method1(T t) {
return t; // Object 타입만 사용 가능
}
}
GenericMethods gm = new GenericMethods();
String str1 = gm.<String>method1("안녕");
String str1 = gm.method1("안녕"); // 보통 이렇게 씀
class Good<T extends Fruit> {
private T t;
...
}
Goods<Apple> goods = new Goods<>();
public <T extends Number> void method1(T t) {
System.out.println(t.intValue()); // Object 메서드만 사용 가능하지만 여기서는 Number 클래스를 상속받았기 때문에 가능
}