Generics - это механизм в Java, который позволяет создавать классы, интерфейсы и методы, которые работают с параметризованными типами данных. Использование Generics позволяет писать более безопасные и переиспользуемые программы, поскольку компилятор Java может проверять типы данных во время компиляции.
К примеру, если вы хотите иметь класс, который может работать с любым типом данных (например, LinkedList), используя Generics, вы можете написать его так:
public class LinkedList<T> {
private Node<T> head;
public void add(T value) {
// добавляем элемент в связанный список }
private class Node<T> {
T value;
Node<T> next;
}
}
Теперь, когда вы создаете экземпляр LinkedList, вы можете указать тип данных, с которым он будет работать, например:
LinkedList<String> list = new LinkedList<String>();
list.add("hello");
Здесь тип T заменен на String. Это означает, что LinkedList будет работать только с объектами типа String, и компилятор Java будет проверять типы для вас.
Generics также позволяют создавать обобщенные интерфейсы и методы, что дает еще больше возможностей для переиспользования кода в Java.