Generics는 타입으로 매개변수화된 class와 메서드를 작성하게 하여, 같은 코드가 여러 타입과 작동하면서도 컴파일 타임 타입 안전성을 유지합니다. 이것이 **매개변수 다형성(parametric polymorphism)**입니다 — "하나의 형태, 어떤 타입이든".
해결하는 문제
java
// Generics 없이: 타입 없음, 캐스트 필요, 런타임에 깨질 수 있음
List list ();
list.add();
(String) list.get();
