본문 바로가기

JAVA

[JAVA] 제너릭이란?

제너릭이란 ?

List<Interger> list1 = new ArrayList<>();
List list2 = new ArrayList<>();
Map<String, String> map = new ArrayList<>();

위와같이 꺽쇠안에 클래스 타입이 명시된 패턴을 자주 발견할 수 있다.

이걸 제네릭(Generic) 이라고 부르며, 제네릭 파라미터는 꺽쇠안에 포함하여 전달한다.

 

제너릭은 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다.
다시 말해 특정 타입을 미리 지정하는 것이 아니라 필요에 따라 타입을 지정할 수 있도록 하는 일반 타입이라는 것.

 

제너릭의 장점 및 사용이유?

  • 타입에 대해 유연성과 안정성을 제공한다.
  • 타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해진다.
  • 타입을 유연하게 처리하며, 잘못된 타입 사용으로 발생할 수 있는 런타임 타입 에러를 컴파일 과정에 검출한다.

 

제너릭 사용법

  • 클래스, 인터페이스 또는 메소드에 선언할 수 있다.
  • 동시에 여러 타입을 선언할 수 있다.
  • 와일드 카드를 이용하여 타입에 대하여 유연한 처리를 가능하게 한다.
  • 제네릭 선언 및 정의시에 타입의 상속 관계를 지정할 수 있다.

제네릭 타입은 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다.
제네릭 타입은 클래스 또는 인터페이스 이름 뒤에 < > 부호가 붙고 사이에 타입 파라미터가 위치한다.

public class MyClass<T>
public interface MyInterface<T>

타입 파라미터는 정해진 규칙은 없지만 일반적으로 대문자 알파벳 한글자로 표현합니다.

 

자주 사용하는 타입인자

타입인자 설명
<T> Type
<E> Element
<K> Key
<N> Number
<V> Value
<R> Result

 

 

 

 

 


Reference

https://jehuipark.github.io/java/java-generic

https://velog.io/@offsujin/JAVA-%EC%A0%9C%EB%84%88%EB%A6%ADGeneric-%EC%9D%B4%EB%9E%80

https://hahahoho5915.tistory.com/69