반응형

제네릭 클래스 정의

  • 일반적이라는 의미로 하나의 코드로 여러 타입을 동시에 처리하는 기술
  • 다양한 종류의 데이터를 처리할 수 있는 클래스와 메소드를 작성하는 기법
  • JDK 1.5부터 사용
  • 클래스를 정의할 때 클래스 안에서 사용하는 자료형을 구체적으로 명시하지 않고 'T'와 같은 기호로 표시
  • 이후 객체를 생성할 때 'T' 자리에 구체적인 자료형을 적어줌

 

 

제네릭 사용 이전의 불편한 점

  • 데이터를 Box 클래스에서 가져올 때마다 형변환 필요
  • 강제 형변환할 경우 오류 발생

Box 클래스

 

BoxTest 클래스

 

 

기본 예제

예제 (1) 선언

 

예제 (1) 사용

 

예제 (1) 실행 결과

 

 

제네릭 예제 (2)

  • 동일한 형태의 데이터 타입인 경우

예제 (2) 선언

 

예제 (2) 사용

 

예제 (2) 실행 결과

 

 

제네릭 예제 (3)

  • 서로 다른 데이터 타입을 가지는 경우

예제 (3) 선언

 

예제 (3) 사용

 

예제 (3) 실행 결과

 

 

타입 변수 표기법

  • 제네릭 클래스는 여러개의 타입 매개 변수를 가질 수 있으나,
  • 타입의 이름은 클래스나 인터페이스 내에서 유일해야 함
  • 한 개의 대문자로 표시하는 관례 (변수의 이름과 구분하기 위해서)
  • 타입 매개 별수는 기초 자료형으로 객체화될 수 없음
  • E - element (요소 : 자바 컬렉션 라이브러리에서 많이 사용)
  • K - key
  • N - number
  • T - Type
  • V - value
  • S, U, V, etc.

 

 

 

제네릭 메소드

  • 일반 클래스는 메소드에서도 타입 매개 변수를 사용하여 제네릭 메소드를 정의
  • 이 때 타입 매개 변수의 범위는 메소드 내부로 제한됨

 

제네릭 메소드 선언

 

 

제네릭 메소드 사용

 

 

반응형

+ Recent posts