JAVA · 람다/메서드
제네릭 메서드
타입 파라미터를 메서드 레벨에서 선언하여 재사용 가능한 유틸리티를 만듭니다.
람다/메서드중급generic제네릭타입파라미터bounded
핵심 설명
타입 파라미터를 메서드 레벨에서 선언하여 재사용 가능한 유틸리티를 만듭니다.
Java code
import java.util.*;
public class GenericMethods {
// 제네릭 메서드 — 반환 타입 앞에 <T> 선언
static <T> List<T> listOf(T... items) {
return new ArrayList<>(Arrays.asList(items));
}
// Bounded 타입 파라미터
static <T extends Comparable<T>> T max(T a, T b) {
return a.compareTo(b) >= 0 ? a : b;
}
// 여러 타입 파라미터
static <K, V> Map<K, V> mapOf(K key, V value) {
Map<K, V> map = new HashMap<>();
map.put(key, value);
return map;
}
public static void main(String[] args) {
List<String> names = listOf("Alice", "Bob");
int bigger = max(10, 20); // 타입 추론
String later = max("apple", "banana");
Map<String, Integer> m = mapOf("age", 30);
System.out.printf("%s, %d, %s, %s%n", names, bigger, later, m);
}
}학습 팁
대부분의 경우 타입 인자를 명시하지 않아도 컴파일러가 추론합니다. 추론 실패 시에만 ClassName.<Type>method()로 명시하세요.
주의할 점
static void sort(T[] arr)에서 T에 Comparable 바운드가 없으면 비교할 수 없습니다.
자주 묻는 질문
제네릭 메서드란 무엇인가요?
타입 파라미터를 메서드 레벨에서 선언하여 재사용 가능한 유틸리티를 만듭니다.
제네릭 메서드 학습 시 주의할 점은 무엇인가요?
static void sort(T[] arr) 에서 T 에 Comparable 바운드가 없으면 비교할 수 없습니다.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.