Приведи пример использования Generics в Java.

«Приведи пример использования Generics в Java.» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Generics (обобщения) в Java позволяют создавать классы, интерфейсы и методы, которые работают с параметризованными типами. Это обеспечивает безопасность типов на этапе компиляции и устраняет необходимость явного приведения типов.

Пример обобщенного класса Box:

public class Box<T> {
    private T content;

    public void setContent(T content) {
        this.content = content;
    }

    public T getContent() {
        return content;
    }
}

Использование:

// Создание Box для String
Box<String> stringBox = new Box<>();
stringBox.setContent("Hello");
String value = stringBox.getContent(); // Тип String гарантирован, приведение не нужно

// Создание Box для Integer
Box<Integer> intBox = new Box<>();
intBox.setContent(123);
int num = intBox.getContent(); // Авто-распаковка из Integer в int

Ключевые преимущества:

  • Типобезопасность: Компилятор проверяет соответствие типов, предотвращая ClassCastException.
  • Устранение приведения типов: Код становится чище и безопаснее.
  • Повторное использование: Один обобщенный алгоритм или структура данных может работать с разными типами.

Generics также поддерживают ограничения (<T extends Number>) и несколько параметров (<K, V>).