[Java] 제네릭(generic) 타입

Updated:

데이터의 타입(data type) 일반화

제네릭(generic) 이란?


  • 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시점에 미리 지정하는 방법

장점


  • JDK 1.5부터 도입
  • 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성 증가
  • 반환값에 대한 타입 변환 및 타입 검사 불필요
  • jdk 1.5 이전 : 여러 타입을 사용하는 대부분의 클래스나 메소드에서 인수나 반환값으로 Object 타입 사용
    • → 반환된 Object 객체를 다시 원하는 타입으로 타입 변환해야함
    • → 오류가 발생할 여지가 큼

사용


  • 클래스와 메소드에만 선언 가능
      class MyArray<T> {
          T element;
          void setElement(T element) { this.element = element; }
          T getElement() { return element; }
      }
    

    T : 타입 변수(type variable). 임의의 참조형 타입

  • 제네릭 클래스(generic class) 생성 : 타입 변수 자리에 사용할 실제 타입을 명시
      MyArray<Integer> myArr = new MyArray<Integer>();
    

    ⇒ 내부적으로는 정의된 타입 변수가 명시된 실제 타입으로 변환

참고


Tags:

Categories:

Updated:

Leave a comment