제네릭 메서드

yshjft·2022년 12월 31일
0

Java, OOP

목록 보기
21/27

제네릭 기본

  • class Box<T> { … }
    • Box<T> : 제네릭 클래스
    • T : 타입 변수 또는 타입 매개 변수
    • Box : 원시 타입

제네릭 메서드

  • 제네릭 타입을 메서드 리턴 타입 앞에 선언한 메서드

    • public static <T> T getName(T name) {}
  • 제네릭 메소드에서 사용되는 와 제네릭 타입으로 사용되는 T는 다르다.

    		public class Student<T> {
    			static <T> T getOneStudent(T id) {
    				return id;
    			}
    		}
    		Student<Long>.getOneStudent(17)
    • Student 클래스에서 사용되고 있는 TgetOneStudent()에서 사용되고 있는 T는 전혀 다르다.
  • static 메서드에서는 제네릭을 타입(타입 매개변수)을 사용할 수 없다.

    • static 메서드는 클래스를 인스턴스화 하기 전에 사용하여 타입이 정해져 있지 않기 때문이다.
    • 하지만 제네릭 메서드의 경우 static 메서드에서 제네릭 타입을 사용할 수 있다. 이는 제네릭 메서드가 호출 시에 매게 타입을 지정하기 때문이다.
    • 또한 와일드카드를 이용하여 static 메서드에서 제네릭 타입을 이용할 수 있다.
      • public static void printAll(ArrayList<? extends Test> list1, ArrayList<extends Test> list2) {}

참고

profile
꾸준히 나아가자 🐢

0개의 댓글