제네릭 메서드 : 메서드 선언 시에도 타입 매개변수를 사용하여 메서드의 매개변수 타입 또는 반환 타입을 일반화하는 방법. 제네릭 메서드를 사용하면 메서드를 호출할 때마다 타입을 명시할 필요가 없으며, 여러 종류의 타입에 대해 일반적으로 사용할 수 있는 메서드를 정의할 수 있다.
public <T> 반환타입 메서드이름(매개변수) {
// 메서드 내용
}
여기서 <T>는 타입 매개변수를 나타내며, 반환타입이나 매개변수에서 이를 사용할 수 있다.
예를 들어, 다음은 제네릭 메서드를 사용하여 배열의 요소를 출력하는 메서드의 예시이다:
public class ArrayPrinter {
public static <T> void printArray(T[] array) {
for (T element : array) {
System.out.print(element + " ");
}
System.out.println();
}
}
// 사용 예시
Integer[] intArray = {1, 2, 3, 4, 5};
String[] strArray = {"Hello", "World"};
ArrayPrinter.printArray(intArray); // 정수 배열 출력
ArrayPrinter.printArray(strArray); // 문자열 배열 출력
클래스와 마찬가지로, 메서드도 제네릭으로 만들 수 있다.
결론 : 제네릭 타입과 마찬가지로, 클라이언트에서 입력 매개변수와 반환값을 명시적으로 형변환해야 하는 메서드보다 제네릭 메서드가 더 안전하며 사용하기도 쉽다. 타입과 마찬가지로, 메서드도 형변환 없이 사용할 수 있는 편이 좋으며, 많은 경우 그렇게 하려면 제네릭 메서드가 되어야 한다. 역시 타입과 마찬가지로, 형변환을 해줘야 하는 기존 메서드는 제네릭하게 만들자. 기존 클라이언트는 그대로 둔 채 새로운 사용자의 삶을 훨씬 편하게 만들어줄 것이다.
'이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] 아이템 32. 제네릭과 가변인수를 함께 쓸 때는 신중하라 (0) | 2024.04.01 |
---|---|
[이펙티브 자바] 아이템 31. 한정적 와일드카드를 사용해 API 유연성을 높여라 (0) | 2024.04.01 |
[이펙티브 자바] 아이템 29. 이왕이면 제네릭 타입으로 만들라 (0) | 2024.03.28 |
[이펙티브 자바] 아이템 28. 배열보다는 리스트를 사용하라 (0) | 2024.03.28 |
[이펙티브 자바] 아이템 27. 비검사 경고를 제거하라 (0) | 2024.03.27 |