[JAVA]제네릭

Date:     Updated:

카테고리:

태그:

[22] 제네릭

22.1. 제네릭(Generic) 프로그래밍

  • 제네릭 자료형 (무엇이든 담을 수 있음)
    • 클래스에서 사용하는 변수의 자료형이 여러개 일수 있고, 메서드는 동일한 경우 자료형을 특정하지 않고, 추후 해당 클래스를 사용할 때 지정할 수 있도록 선언.
    • 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식
    • 컬렉션 프레임워크에서 많이 사용되고 있음.
  • 자료형 매개변수 T (type parameter)
    • 이 클래스를 사용하는 시점에 실제 사용할 자료형을 지정
    • 여러 알파벳을 의미에 따라 사용 가능
      • E : element
      • K : key
      • V : value
  • <>
    • 다이아몬드 연산자
      GenericThreeDPrinter<Powder> powerPrinter = new GenericThreeDPrinter<>();  
      
      • 자료형 추론 (자바 10부터)
        • 다이아몬드 연산자 내부에서 자료형은 생략가능 함

22.2. 사용하기

  • 상위 클래스의 필요성
    • T 자료형의 범위를 제한 할 수 있음
    • 상위 클래스에서 선언하거나 정의하는 메서드를 활용할 수 있음
    • 상속을 받지 않는 경우 T는 Object로 변환되어 Object 클래스가 기본으로 제공하는 메서드만 사용가능

22.3. 제네릭 메서드

  • 자료형 매개변수를 메서드의 매개변수나 반환 값으로 가지는 메서드
  • 자료형 매개변수가 하나 이상인 경우도 있음
  • 제넥릭 클래스가 아니어도 내부에 제네릭 메서드는 구현하여 사용 할 수 있음
    public <자료형 매개변수> 반환형 메서드 이름(자료형 매개변수 ....) {
    }
    

JAVA 카테고리 내 다른 글 보러가기

댓글 남기기