활동/호기심

자바 제네릭(Generic) 정의와 사용하는 이유 정리

ByeongJun 2023. 8. 21. 14:21
반응형
 

Generic Types (The Java™ Tutorials > Learning the Java Language > Generics (Updated))

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of updated

docs.oracle.com

제네릭(Generic) 

클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법

의미를 해석하자면  데이터의 타입(data type)을 일반화한다(generalize)는 것이다.

 

데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있어
재사용성을 높일 수 있는 프로그래밍 방식 

 

타입이 안전하다는 장점과 코드의 중복을 제거하는 편의성이라는 두 마리 토끼를 잡기 위해 도입

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

 

 

 

Type Parameter Naming Conventions

  • E - Element (Java Collections Framework에서 자주 사용)
  • K - Key
  • N - Number
  • T - Type
  • V - Value
  • S,U,V etc. - 2nd, 3rd, 4th types

 

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

class MyArray<T> {
  T element;                        // T는 타입변수(type variable)로 임의의 참조형 타입을 의미
    void setElement(T element) {
    this.element = element;
  }
  T getElement() {
  return element;
  }
}

 

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

  • 자바에서 타입 변수 자리에 사용할 실제 타입을 명시할 때
    기본 타입을 사용할 수 없기 때문에 wrapper class 사용한다.
  • Java SE7 부터 인스턴스 생성 시 타입을 추정할 수 있는 경우엔 타입을 생략 가능
    MyArray<Integer> myArr = new MyArray<>();

 

반응형