자바 제네릭은 자바 5부터 도입된 기능으로, 타입 안정성을 제공하여 컴파일 시점에서 타입 오류를 잡아내고 프로그램의 안정성을 높여줍니다. 제네릭은 클래스나 메서드를 작성할 때 일반적인 타입 대신 실제 타입을 파라미터로 받아 사용하는 방식을 말합니다. 이를 통해 재사용성과 유연성을 높일 수 있습니다.
제네릭 클래스
제네릭 클래스는 클래스 선언 시 타입 파라미터를 사용하여 일반적인 타입을 추상화합니다. 예를 들어, ArrayList 클래스는 제네릭을 사용하여 여러 종류의 객체를 저장할 수 있습니다. 다음은 제네릭 클래스의 예입니다.
public class Box<T> {
private T value;
public void setValue(T value) {
this.value = value;
}
public T getValue() {
return value;
}
}
위의 예시에서 Box<T>에서 T는 타입 파라미터로, 어떤 타입의 값을 저장할지 사용자가 지정할 수 있습니다.
제네릭 메서드
제네릭 메서드는 메서드 선언 시 타입 파라미터를 사용하여 메서드의 인자 타입이나 반환 타입을 추상화할 수 있습니다. 예를 들어, 다음은 제네릭 메서드의 예입니다.
public <T> void printArray(T[] array) {
for (T item : array) {
System.out.println(item);
}
}
위의 예시에서 printArray 메서드는 T 타입의 배열을 받아 배열의 요소를 출력합니다. 이렇게 함으로써 다양한 타입의 배열을 인자로 전달할 수 있습니다.
와일드카드
와일드카드(?)는 제네릭 타입을 더욱 유연하게 다룰 수 있게 해줍니다. 와일드카드를 사용하면 알 수 없는 타입을 표현할 수 있거나, 특정 타입의 하위 타입으로 제한할 수 있습니다. 예를 들어, 다음은 와일드카드의 사용 예시입니다:
public void processList(List<?> list) {
for (Object item : list) {
// 처리 로직
}
}
위의 예시에서 processList 메서드는 어떤 타입의 리스트도 인자로 받을 수 있습니다.
제네릭의 장점
- 타입 안정성: 컴파일 시점에서 타입 오류를 검출하여 런타임 오류를 방지합니다.
- 재사용성과 유연성: 제네릭을 사용하면 다양한 타입에 대해 일반적인 코드를 작성할 수 있습니다.
- 코드 가독성: 제네릭을 사용하면 코드가 간결해지고 읽기 쉬워집니다.
제네릭은 자바에서 강력한 타입 시스템을 구축하는 데 중요한 도구입니다. 타입 안정성을 높이고 유연한 코드를 작성하기 위해 제네릭을 적극적으로 활용해보세요.
'IT > java' 카테고리의 다른 글
자바 맵(Map): 키-값 쌍으로 데이터를 관리하는 자료구조 (1) | 2023.06.09 |
---|---|
자바 리스트: 데이터를 유연하게 관리하는 도구 (0) | 2023.06.09 |
자바(Java)에서 날짜와 시간 얻기 (0) | 2023.06.09 |
자바(Java) 문자열 (0) | 2023.06.08 |
자바(Java) 예외 처리 (0) | 2023.06.08 |
댓글