От сырых коллекций к обобщённым типам
Замените сырые типы коллекций и приведения типов при извлечении на безопасность типов, проверяемую на этапе компиляции.
List names = new ArrayList();
names.add("Duke");
String name = (String) names.get(0);
List<String> names = new ArrayList();
names.add("Duke");
String name = names.get(0);
Безопасность на этапе компиляции
Недопустимые типы элементов вызывают ошибку при компиляции, а не во время выполнения.
Без приведений при извлечении
Значения сохраняют объявленный тип элемента.
Самодокументируемые API
Объявления коллекций точно указывают, что они содержат.
Обобщённые типы доступны начиная с JDK 5 (сентябрь 2004 года).
Сырые коллекции принимают произвольные типы объектов и откладывают ошибки типов до момента выполнения приведения типа. Параметры обобщённого типа позволяют компилятору проверять запись и чтение, устраняют приведения типов, улучшают поддержку IDE и делают контракты API явными. Сырые типы обычно должны оставаться только на тщательно изолированных границах взаимодействия с устаревшим кодом.