Skip to content

Wildcard

AnSungHo edited this page Oct 9, 2022 · 4 revisions

📕Wildcard

what is Wildcard?

  • 특정 타입을 기준으로 상한 범위와 하한 범위를 지정함으로써 호출 범위를 확장 또는 제한할 수 있다
  • 무엇이 오느냐보다는 어떠한 동작을 할것이냐가 중점

why is Wildcard?

  • 제너릭 타입의 단점을 보완하고자 만들어졌다. 그렇다면 제너릭타입의 단점은 무엇일까?
    • 선언된 타입으로만 매개변수입력해야함
    • 상속받은 클래스, 부모클래스를 매개변수로 사용하고 싶어도 불가능함
    • 어떤 타입이 오더라도 상관이 없는 경우에는 대응하기 불편
  • 타입 파라미터가 유의미하게 사용되지 않는다면 와일드카드를 사용한다
  • 데이터 타입보다 인자로 넘어오는 타입 메소드를 중심에 둔다.

How use Wildcard

  • < ? > : 전체 => 전체 타입 가능
  • extends 상위타입 A > : 상한선 => A 자식클래스까지만 가능
  • < ? super 하위 타입 B > : 하한선 => B 조상클래스만 가능

💡 참조 💡 참조