[Java 개발] 제23회 Generics

Java입문강좌

시작하며

여러분 안녕하세요!

DreamHanks의 254cm입니다.

이번 시간에는 Generic에 대해서 설명해 보도록 하겠습니다.

Java의 전체 기사는 여기를 클릭해 주세요.

이전 기사는 제22회 래퍼 클래스 에 대해서 배워 봤습니다.

Generics이란?

제네릭스(Generics)는 Java 5에서 도입된 것으로 데이터형을 일반화한다(Generalize)는              의미입니다.

제네릭스는 클래스 또는 메서드에서 사용할 데이터형을 미리 지정하는 방법입니다.

제네릭스를 사용하면 데이터형 mismatch 문제를 컴파일 과정에서 예방할 수 있습니다.

그리고 제네릭스를 사용하면 형 캐스트를 할 필요가 없어져 프로그램의 성능이 향상됩니다.

 

샘플

상기 샘플과 같이 제네릭스에서 데이터형을 지정하지 않고 데이터를 저장하면

저장하는 데이터를 Object형으로 저장합니다.

그래서, 타입 캐스팅을 해야 합니다.

제네릭스에서 데이터형을 미리 지정하면 저장되는 데이터가 지정된 데이터로 저장되므로 데이터를 꺼낼 때 형 캐스트를 하지 않아도 문제 없습니다.

제네릭스 쓰는 법

위와 같이 작성합니다.

괄호 <> 안에는 정해진 규칙이 없지만 일반적으로 대문자와 알파벳으로 표현을 합니다.

 

샘플 1

위와 같이 작성한 클래스는 인스턴스를 생성하여 사용할 때

데이터형을 지정하여 사용합니다.

 

샘플 2

 

상기와 같이 작성된 인터페이스는 실장 클래스로 데이터형을 지정할 수 있습니다.

 

제네릭스 범위 지정

제네릭스로 지정하는 데이터형의 범위도 계승을 이용하면 제한할 수 있습니다.

샘플

 

위와 같이 작성되어 있는 클래스는 제네릭스에서 데이터형을 지정할 때

Number 클래스를 상속받을 클래스만 지정할 수 있습니다.

 

위의 이미지는 제네릭스에서 데이터형을 String이라고 했는데,

String는 Number 클래스의 아이 클래스가 아니기 때문에 컴파일 오류가 표시됩니다.

 

끝으로

이번 기사는 이상입니다.

다음 번에는 Collection Framework를 배워 보겠습니다.

방문해 주셔서 감사합니다.

コメント