제너릭(Generic)이란 무엇일까?

ggyu_55·2023년 8월 20일
0

메모

목록 보기
31/46

제네릭(Generic) 이란 타입(T)을 매개변수로 가지는 클래스와 인터페이스를 정의할 수 있게 해주는 프로그래밍 기능. 제네릭을 사용하면 클래스나 인터페이스, 메서드를 정의할 때 타입을 파라미터로 전달할 수 있게 된다.

여기서 T는 타입 매개변수로, 실제 타입이 지정될 때까지 미정의 상태이다. Primitive 값은 지정할 수 없다.

제네릭을 사용하면 컴파일러가 타입을 체크하므로, 다른 타입의 객체를 넣으려고 하면 컴파일 에러가 발생한다.

제네릭의 장점

  • 타입 안정성: 컴파일 타임에 타입 체크를 수행하여 실행 시간에 발생할 수 있는 타입 변환 오류를 줄일 수 있다.
  • 코드 재사용: 하나의 코드를 다양한 타입에 대해 동작하게 할 수 있으므로, 중복 코드를 줄이고 유지 관리가 수월해진다. (List<Integer>List<String> 을 위해 List 를 여러개 정의할 필요가 없다)
  • 캐스팅 감소: 제네릭을 사용하면 명시적인 타입 캐스팅을 줄일 수 있어, 코드가 더 간결하고 가독성이 좋아진다.

제네릭 클래스와 메서드 정의

제네릭 클래스와 메서드를 정의하는 방법은 다음과 같다.

// 제네릭 클래스 정의
public class MyContainer<T> {
    private T value;

    public MyContainer(T value) {
        this.value = value;
    }

    public T getValue() {
        return value;
    }
}

// 제네릭 메서드 정의
public static <E> void printArray(E[] array) {
    for (E element : array) {
        System.out.print(element + " ");
    }
}

0개의 댓글