Java - 와일드 카드, 지네릭 메서드

춤추는개발자·2022년 12월 8일
0

Java 정리

목록 보기
56/59

와일드 카드 <?>

  • 하나의 참조 변수로 대입된 타입이 다른 객체를 참조 가능하게 하는 것이다.
  • 메서드의 매개변수에도 와일드 카드를 사용할 수 있다.
<? extends T> : 와일드 카드의 상한 제한, T와 그 자손들만 가능하다. 주로 사용한다.
<? super T> : 와일드 카드의 하한 제한, T와 그 조상들만 가능하다.
<? > : 제한 없음, 모든 타입이 가능하다. <? extends Object>와 동일하다.

지네릭 메서드

  • 지네릭 타입이 선언된 메서드를 지네릭 메서드라고 하며 타입 변수는 메서드 내에서만 유효하다.
  • 지네릭 클래스에 정의된 타입 매개변수와 지네릭 메서드에 정의된 타입 매개변수는 전혀 관련이 없다.
  • 원래 static 메서드 매개변수에는 타입 매개변수를 사용할 수 없고 지네릭스를 사용하지 않던가 특정 타입을 지정해줘야 했다. 하지만 메서드에 지네릭 타입을 선언하고 타입 매개변수를 사용하는것은 가능하다.
  • 지네릭 메서드를 호출할 때 클래스.<타입>메서드이름(매개변수)으로 <타입>을 작성해줘야 한다. 하지만 다행이도 컴파일러가 객체 생성할때 작성한 대입된 <타입>을 보고 타입을 추정할 수 있기 때문에 메서드를 호출할 때 <타입>을 생략해도 된다.
  • 와일드 카드는 하나의 참조변수로 서로 다른 타입이 대입된 여러 지네익 객체를 다루기 위해 사용하고 지네릭 메서드는 호출할 때마다 다른 지네릭 타입을 대입할 수 있게 한 것이다. 둘은 전혀 다르다.

    지네릭 메서드는 static <타입> 반환타입 메서드명 (매개변수)로 작성한다.

0개의 댓글