Generic(제네릭)

김성민·2023년 10월 22일

Generic(제네릭) 이란?

데이터의 타입을 클래스 내부에서 지정하는 것이 아닌 외부에서 지정하는 기법
변수를 선언할때 변수의 타입을 지정해주듯 제네릭은 객체(Object)에 타입을 지정해주는것

ArrayList<String> list = new ArrayList<>();
// <String> 이부분이 제네릭

제네릭 타입 매개변수

다이아몬드 연산자(<>)안에 식별자 기호를 지정해서 파라미터화 한 것
제네릭을 이용한 클래스나 메소드를 설계할 때 사용

예시코드

public class GenericTest<T> {

  private T data;

  public GenericTest(T data) {
    this.data = data;
  }

  public T getData() {
    return data;
  }

  public static void main(String[] args) {
    GenericTest<String> strGen = new GenericTest<>(new String("hello world"));
    System.out.println(strGen.getData()); // "hello world"
    GenericTest<Integer> intGen = new GenericTest<>(3);
    System.out.println(intGen.getData()); // 3
  }
}

제네릭의 장점

제네릭을 사용하면 잘못된 타입을 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다.
클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다.
즉, 관리하기가 편하다.
비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다.

0개의 댓글