[TIL] 221011 - 자바 : 제너릭

yujamint·2022년 10월 17일
0

TIL

목록 보기
8/9

제너릭

최상위 클래스인 Object 클래스를 통해 모든 타입의 객체를 받도록 할 수는 있지만, 우리가 Pencil클래스 객체를 넣어도 Object 를 반환하기 때문에 실제 인스턴스의 필드,메서드에 접근하기 위해서는 형변환이 필요하다.

→ 이를 해결하기 위해 제너릭을 사용할 수 있다.

제너릭을 사용한다면?

  • 객체 생성 시점에 원하는 데이터 타입을 넣어줄 수 있다.
    • 모든 데이터 타입을 받기 위해 일단 Object 타입으로 객체를 받은 뒤 형변환을 하는 과정이 필요없어진다!
  • 컴파일시에 데이터 타입 체크 가능하다.

제너릭 타입 파라미터 네이밍 컨벤션

  • E : Element
  • K : Key
  • N : Number
  • T : Type
  • V : Value

타입 파라미터 제한하기

  • 상한 타입 제한
public Class Gifts<T extends Item> {
	...
}

→ Gifts의 타입으로 Item 하위의 클래스만 올 수 있다.

  • 하한 타입 제한
public Class Gifts<T super Item> {
	...
}

→ Gifts의 타입으로 Item 상위 클래스만 올 수 있다.

제너릭 메서드

매개 변수 또는 리턴 타입으로 타입 파리미터를 갖는 메서드

public T getItem() {
	return item;
}
profile
개발 기록

0개의 댓글