타입을 Generalize(일반화) 하는 것
타입을 클래스 내부에서 결정하는게 아니라 밖에서 사용할 때 결정해주는 것
public class Test<T,E> {
T value;
E value2;
public void value(T value){
this.value = value;
}
public void value2(E value2){
this.value2 = value2;
}
}
어떤 값이 올지 미리 정하지 않고 호출시 정할 수 있도록 T,E와 같은 키워드로 선언한 후 추후에 타입을 명시하여 치환하여 실행된다.
//Map과 같은 컬렉션 사용시에도 제네릭이 사용된다.
Map<String,Integer> m1 = new HashMap<>();