Generics в Java позволяют создавать классы, интерфейсы и методы, которые работают с параметризованными типами.
Основное назначение Generics:
ClassCastException во время выполнения.Пример без Generics:
java
Пример с Generics:
java
Generics также используются в:
ArrayList<E>, HashMap<K, V>List<E>, Map<K, V><T> void printArray(T[] array)<T extends Comparable<T>> (ограничение на типы, реализующие Comparable)Реализация Generics в Java основана на "стирании типов" (type erasure) на этапе компиляции. Это означает, что информация о генерируемых типах удаляется, и во время выполнения JVM оперирует сырыми типами. Это обеспечивает обратную совместимость со старыми версиями Java, но имеет некоторые ограничения.