Junior — Middle
Pouvez-vous expliquer le principe des génériques en Java et comment ils permettent de créer des classes et des méthodes universelles?
sobes.tech IA
Réponse de l'IA
Обобщения (generics) в Java позволяют создавать классы, интерфейсы и методы, которые работают с разными типами данных, при этом обеспечивая безопасность типов во время компиляции. Это значит, что можно писать универсальный код, который не зависит от конкретного типа, и при этом избежать ошибок приведения типов.
Например, класс List<T> — это список элементов типа T. При создании экземпляра можно указать конкретный тип, например, List<String>, и компилятор гарантирует, что в список попадут только строки.
Пример универсального класса и метода:
// Универсальный класс с параметром типа T
public class Box<T> {
private T value;
public void set(T value) {
this.value = value;
}
public T get() {
return value;
}
}
// Универсальный метод
public static <U> void printBox(Box<U> box) {
System.out.println(box.get());
}
// Использование
Box<Integer> intBox = new Box<>();
intBox.set(123);
printBox(intBox); // Выведет: 123
Таким образом, обобщения позволяют писать более гибкий и безопасный код, избегая явных приведений типов и ошибок во время выполнения.