Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpGnInr 102 of 322 menu
◀ ▶

Введение в обобщения в Java

Списки строк и списки чисел уже описывают как List<String> и List<Integer>. Отдельная задача - написать одну и ту же логику для разных типов элемента без копирования кода под каждый вариант.

Пусть нужен первый элемент списка или пустое значение, если список пуст. Для строк и для чисел алгоритм совпадает, меняется только тип элемента. Здесь помогает параметр типа - имя, которое подставляется вместо конкретного типа:

class Utils { static <T> T firstOf(List<T> list) { return list.isEmpty() ? null : list.get(0); } }

Буква T в угловых скобках перед типом возвращаемого значения объявляет параметр типа. В сигнатуре List<T> и результат T согласованы с этим именем - компилятор связывает их при вызове:

void demo() { List<String> words = List.of("api", "log"); List<Integer> nums = List.of(10, 20, 30); System.out.println(Utils.firstOf(words)); System.out.println(Utils.firstOf(nums)); }

Для списка строк метод возвращает строку или null, для списка чисел - число или null. Одно объявление покрывает оба случая, потому что T каждый раз выводится из аргумента.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить