메서드 역시 제네릭화로 많은 혜택을 받을 수 있다. 특히 static 유틸리티 메서드는 제네릭화하기 좋은 메서드이다. 두 집합의 합집합을 반환하는 메서드를 제네릭화 하면 만들어보자.
위와 같이 형인자를 선언하는 형인자 목록은 메서드의 수정자와 반환값 자료형 사이에 둔다. 위의 메서드를 자세히 보면 입력과 반환값 자료형이 전부 같다는 것이다. 정적 와일드카드 자료형을 사용하면 좀 더 유연한 메서드를 구현할 수 있다.
그렇다면 제네릭 메서드의 이점은 무엇일까? 제네릭 메서드는 제네릭 생성자를 호출할 때는 명시적으로 주어야 했던 형인자를 전달할 필요가 없다는 것이다. 컴파일러는 메서드에 전해진 인자의 자료형을 보고 형인자의 값을 유추해낸다. 메서드를 이용한 객체생성을 하려면 아래와 같이 제네릭 정적 팩터리 메서드를 만들면 된다.
요약
제네릭 자료형이나 마찬가지로 제네릭 메서드는 클라이언트가 직접 입력 값과 반환값의 자료형을 형변환해야 하는 메서드보다 사용하기 쉽고 형 안전성도 높다.
'개발서적 > 이펙티브자바' 카테고리의 다른 글
[제네릭]규칙29. 형 안전 다형성 컨테이너를 쓰면 어떨지 따져보라 (0) | 2017.05.03 |
---|---|
[제네릭]규칙28. 한정적 와일드카드를 써서 API유연성을 높여라 (0) | 2017.05.03 |
[제네릭]규칙26. 가능하면 제네릭 자료형으로 만들 것 (0) | 2017.04.29 |
[제네릭]규칙25. 배열대신 리스트를 써라 (0) | 2017.04.29 |
[제네릭]규칙24. 무점검 경고를 제거하라 (0) | 2017.04.27 |