소거 한계에 맞는 실행 타입 도구를 선택한다

배열·오버로딩·varargs와 섞일 때 특히 주의합니다.

요구도구주의
실행 타입 검사Class<T>중첩 타입 한계
객체 생성Supplier<T>생성 정책
제네릭 배열List<T>new T[] 금지
varargs@SafeVarargs 조건힙 오염
raw 입력검증 adapter경고 최소화
동일 erasure overload이름 분리시그니처 충돌

핵심: 제네릭 관계가 복잡하면 이름 있는 중간 타입으로 단순화합니다.