와일드 카드, 지네릭 메소드

0

와일드 카드 < ? >

: 하나의 참조 변수로 대입된 타입이 다른 객체를 참조 가능

↳ 와일드 카드를 이용해서 list라는 참조변수 하나서로 다른 지네릭 타입(Tv, Audio)이 대입된 객체들을 다룰 수 있음

- 메소드의 매개변수에 와일드 카드를 사용


↳ Fruit의 자손인 Apple도 하나의 매개변수(box)에 들어올 수 있음

지네릭 메소드

1) 지네릭 타입이 선언된 메소드(타입 변수는 메소드 내에서만 유효)
↳ 메소드에 타입변수가 선언 된 것

static <T> void sort(List<T> list, Comparator<? super T> c)

2) 클래스의 타입 매개변수<T>메소드의 타입 매개변수<T>는 별개

3) 지네릭 메소드는 메소드를 호출할 때마다 타입을 대입해야됨(대부분 생략 가능)
→ 호출 할 때마다 다른 타입을 대입할 수 있음
(✔︎ 지네릭 클래스는 객체를 생성할 때 지네릭 타입을 대입)

4) 메소드를 호출할 때 타입을 생략하지 못하는 경우 (매우 드뭄), 앞에 클래스 이름도 생략하면 안됨

지네릭 메소드 vs 와일드 카드


↳ 위의 경우에 둘 다 쓸 수 있지만 용도가 좀 다름 ( 와일드카드를 쓸 수 없을 땐 지네릭메소드를 씀)

  • 지네릭 메소드: 메소드를 호출할 때마다 다른 지네릭 타입을 대입할 수 있게 한 것
  • 와일드 카드 : 하나의 참조변수로 서로 다른 타입이 대입된 여러 지네릭 객체를 다루기 위한 것

출처

  • 자바의 정석 기초편 : ch 12- 12~14
profile
백엔드를 공부하고 있습니다.

0개의 댓글