제네릭(Generics)
- 어떤 타입이든 한 가지 타입으로 담을 수 있음
- 클래스나 메소드에서 컴파일시 타입 체크를 해주는 기능을 함
- 장점
- 타입 안전성을 제공
- 타입 체크와 형변환을 생략 할 수 있으므로 코드가 간결해짐
- 다른 타입의 객체로 저장되는 것을 방지하며 원래의 타입과 다른 타입으로 형변환 되어 발생 할 수 있는 오류를 줄여줌
제넥릭 사용법
public class MyGenerics<T> {
T name;
public void setName(T name) {
this.name = name;
}
public T getName() {
return name;
}
}
public class GenericsTest {
public static void main(String[] args) {
MyGenerics<String> my = new MyGenerics<>();
my.setName("TEST");
my.setName(123);
}
}
- 컴파일시 하위 버전과의 호환성 때문에 컴파일러가 제네릭 타입이 맞는지 소스를 체크하고 필요한 부분에 형변환을 넣어주고 제네릭 타입을 제거함 그래서 클래스 파일에는 제네릭 타입이 없음