Generics позволяют писать классы, интерфейсы и методы, которые работают с параметром типа, указанным вызывающей стороной — обеспечивая проверку типов на этапе компиляции и исключая необходимость в приведении типов. Они лежат в основе Collections Framework и переиспользуемых библиотек.
Проблема, которую решают generics
();
list.add();
list.add();
(String) list.get();
List<String> list = <>();
list.add();
list.add();
list.get();
