소거 한계에 맞는 실행 타입 도구를 선택한다
배열·오버로딩·varargs와 섞일 때 특히 주의합니다.
| 요구 | 도구 | 주의 |
|---|---|---|
| 실행 타입 검사 | Class<T> | 중첩 타입 한계 |
| 객체 생성 | Supplier<T> | 생성 정책 |
| 제네릭 배열 | List<T> | new T[] 금지 |
| varargs | @SafeVarargs 조건 | 힙 오염 |
| raw 입력 | 검증 adapter | 경고 최소화 |
| 동일 erasure overload | 이름 분리 | 시그니처 충돌 |
핵심: 제네릭 관계가 복잡하면 이름 있는 중간 타입으로 단순화합니다.