컴파일 시 타입을 체크해주는 기능
// 1.
public class Generic<T> {
// 2.
private T t;
// 3.
public T get() {
return this.t;
}
public void set(T t) {
this.t = t;
}
public static void main(String[] args) {
// 4.
Generic<String> stringGeneric = new Generic<>();
// 5.
stringGeneric.set("Hello World");
String tValueTurnOutWithString = stringGeneric.get();
System.out.println(tValueTurnOutWithString);
}
}
public class Generic<T> { ... }
Generic<String> stringGeneric = new Generic<>();
Generic<T>
: 제네릭 클래스T
: 타입변수Generic
: 원시 타입public class Generic<T, U, E> {
public E multiTypeMethod(T t, U u) { ... }
}
<? extends T>
: T와 그 자손들만 사용 가능<? super T>
: T와 그 조상들만 가능<?>
: 제한 없음(<? extends Object>
와 동일)public class Generic<T, U, E> {
// Generic<T,U,E> 의 T와 아래의 T는 이름만 같을뿐 다른 변수
static <T> void sort(List<T> list, Comparator<? super T> c) { ... }
}
🔗 스파르타코딩클럽 Java 문법 종합반
🔗 자바의 정석