api가 제공하는 제네릭 타입과 메소드를 사용하는 것은 쉽지만, 만드는 일은 어렵다.
✐제네릭 만들기 예제 ✎
클래스와 마찬가지로, 메서드도 제네릭으로 만들 수 있다. 매개변수화 타입을 받는 정적 유틸리티 메서드는 보통 제네릭이다. (ex. Collections.binarySearch, sort ..)
타입 매개변수 목록은 메서드의 제한자와 반환 타입 사이에 온다. (public 과Set 가운데)
public static <E> Set<E> union(Set<E> s1, Set<E> s2){
예를 들어, 서로 다른 타입 String과 Object가 있을 때 String이 Object의 하위 타입이지만 List<String>은 List<Object>의 하위 타입도, 상위 타입도 아니다. 이런 점이 제네릭을 활용한 객체 설계에 불편함을 줄 수 있는데, 이를 해결하기 위해 원소의 생산자나 소비자용 입력 매개변수에 와일드카드 타입을 사용한다.