제네릭 타입(Generics)은 자바에서 타입을 일반화하여 코드의 재사용성을 높이고, 컴파일 시 타입 안전성을 확보하기 위해 사용하는 기능입니다. 이를 통해 클래스나 메서드에서 사용할 데이터 타입을 미리 지정하지 않고, 사용 시점에 특정 타입으로 지정할 수 있습니다.
List<String>
타입의 리스트에는 문자열만 추가할 수 있습니다.<T>
형태로 사용합니다.java
코드 복사
public class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}
위의 Box
클래스는 제네릭 타입 T
를 사용하여 다양한 타입의 객체를 저장할 수 있는 클래스입니다. setItem
메서드와 getItem
메서드는 모두 T
타입을 사용하여, 저장된 객체의 타입에 맞춰 동작합니다.
java
코드 복사
public class Util {
public static <T> void printArray(T[] array) {
for (T item : array) {
System.out.println(item);
}
}
}
위의 printArray
메서드는 제네릭 메서드로, 어떤 타입의 배열이든 받을 수 있습니다. 배열의 타입에 따라 T
가 자동으로 결정됩니다.
java
코드 복사
public interface Pair<K, V> {
public K getKey();
public V getValue();
}
위의 Pair
인터페이스는 키와 값을 저장하는데 사용되며, 두 개의 타입 파라미터 K
와 V
를 사용합니다. 이를 통해 다양한 타입의 키와 값을 가질 수 있는 쌍을 생성할 수 있습니다.
제네릭을 적절히 사용하면 자바 코드의 품질과 유지보수성을 크게 향상시킬 수 있습니다.