Java: Дженерики
2026-02-26 17:23 Diff

Для лучшего понимания дженериков, вспомним уже изученные и посмотрим на них еще раз уже новым взглядом. Сейчас нас интересуют следующие элементы:

  • Списки
  • Мапы
  • Функциональные интерфейсы

Списки

Все списки являются дженериками с одним параметром типа. Параметр можно указывать в правой части, как в примере ниже.

А можно задавать на уровне типа переменной, опуская указание в правой части.

Мы отдаем предпочтение первому методу, так как стараемся по возможности полагаться на вывод типов переменных через использование var.

Мапы

В случае Map параметров типа уже два. Один для ключей другой для значений.

В остальном это такой же дженерик.

Функциональные интерфейсы

В Java встроено множество функциональных интерфейсов для типовых операций, которые обычно используются внутри библиотек. Например, для фильтрации часто бывает нужна лямбда-функция, которая принимает на вход элемент коллекции, выполняет проверку и возвращает true или false в зависимости от результата этой проверки. Такой интерфейс можно создать самостоятельно, а можно воспользоваться готовым дженериком.

В случае лямбда-функций тип всегда указывается у переменной, поэтому здесь параметр типа передается в левой части выражения.