자바에서 제공하는 기능으로, 클래스나 메서드에서 사용할 타입을 컴파일 시점에 지정하지 않고, 실행 시에 타입을 결정할 수 있게 해줍니다.
타입 안전성을 제공하며, 타입 변환 시 발생하는 오류를 컴파일 단계에서 방지할 수 있습니다.
타입 안정성(Type Safety): 제네릭을 사용하면 컴파일러가 코드를 검사하여 타입 호환성을 확인합니다. 잘못된 타입 사용으로 인한 런타임 에러를 컴파일 단계에서 방지할 수 있습니다.
재사용성(Reusability): 제네릭을 사용하면 여러 타입에서 동일한 코드를 재사용할 수 있습니다. 타입에 종속되지 않은 유연한 코드를 작성할 수 있습니다.
코드 가독성(Readability): 제네릭을 사용하면 코드의 가독성을 향상시킬 수 있습니다. 코드에서 타입 변환을 직접 다루지 않고, 의도를 명확하게 표현할 수 있습니다.
제네릭 사용 방법:
제네릭을 사용하기 위해 클래스, 인터페이스, 메서드를 정의할 때 타입 파라미터를 선언합니다. 일반적으로 'T'라는 관례적인 이름을 사용합니다.
타입 파라미터는 클래스 내부에서 변수, 메서드의 매개변수, 반환 타입 등으로 사용될 수 있습니다.
제네릭 클래스 또는 메서드를 사용할 때는 구체적인 타입을 지정해야 합니다.
제네릭 예시:
public class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}
// 사용 예시
Box stringBox = new Box<>();
stringBox.setItem("Hello");
String value = stringBox.getItem();
System.out.println(value); // 출력: Hello