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

Методы, работающие с обобщенными типами, называются обобщенными методами. В предыдущих уроках мы разбирали тип Pair, в котором все методы именно такие:

В отличие от самого класса, работа с такими методами не требует указания параметра типа, так как он уже был задан при создании объекта.

Дженерики могут выступать в качестве параметров типа. Как в качестве параметров метода, так и возвращаемого значения. Для демонстрации реализуем два метода.

copy() - метод, который создает и возвращает наружу копию пары. Пример использования:

Реализация:

replaceWith(), который заменяет содержимое пары данными из пары, переданной как параметр. Пример использования:

Реализация:

В одном случае дженерик выступал в качестве параметра, в другом в качестве возвращаемого значения. Все это можно использовать одновременно, причем в совершенно разных конфигурациях, вкладывая дженерики друг в друга настолько насколько нужно. Иногда получаемые конструкции настолько сложны, что понадобится немало времени на их понимание. К счастью, большая часть такого кода находится внутри библиотек, которые уже написаны.

Параметры типов у методов

У обобщенных методов могут быть свои параметры типов, которых нет в классе. Это бывает нужно, когда мы хотим работать с параметром метода, тип которого может отличаться от параметра типа класса. В таком случае, в определение метода добавляется кусок кода с угловыми скобками перед типом возвращаемого значения.

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

Более того, обобщенные методы могут присутствовать в классах, которые не являются дженериками.