제네릭

Bong2·2022년 3월 19일
0

JAVA

목록 보기
14/16

Generic

데이터의 타입을 일반화한다
제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법

장점

  1. 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있습니다.
  2. 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있습니다.

JDK 1.5이전에서는 여러 타입을 사용하는 대부분의 클래스나 메소드 -> Object 타입사용
이 경우에는 반환된 Object 객체를 다시 원하는 타입으로 타입 변환해야하며, 이때 오류 발생가능성 UP
제네릭을 사용하면 컴파일 시 에 미리 타입이 정해지므로, 타입 검사나 타입 변환과 같은 번거로운 작업이 생략!

제네릭의 선언 및 생성

class MyArray<T> {

    T element;

    void setElement(T element) { this.element = element; }

    T getElement() { return element; }

}

MyArray<Integer> myArr = new MyArray<>();

'T' = 타입 변수, 임의의 참조형 타입

자바에서 타입 변수 자리에 사용할 실제 타입을 명시할 때 기본타입을 바로 사용 X
Wrapper클래스를 사용해야만함

제네릭의 제거 시기

1.컴파일 시 컴파일러에 의해 자동으로 검사되어 타입 변환된다.
2. 코드 내의 모든 제네릭 타입은 제거되어, 컴파일된 class 파일에는 어떠한 제네릭 타입도 포함되지 않는다.

-> 제네릭을 사용하지 않는 코드와의 호환성을 유지하기 위해서 제거!!!

profile
자바 백엔드 개발자로 성장하자

0개의 댓글

관련 채용 정보