Шаг 71.
Язык программирования Java.
Неограниченные подставновки

На этом шаге мы поговорим про неограниченные подстановки

Подстановками можно пользоваться вообще без ограничений, например Pair<?>. На первый взгляд, этот тип похож на базовый тип Pair. На самом же деле типы отличаются. В классе типа Pair<?> имеются методы, аналогичные приведенным ниже:

? getFirst()
void setFirst(?)

Значение, возвращаемое методом getFirst(), может быть присвоено только переменной ссылки на объект типа Object. А метод setFirst() вообще нельзя вызвать - даже с параметром типа Object. Возникает вопрос: для чего может понадобиться такой непонятный тип? Оказывается, что он удобен для выполнения очень простых операций. Например, в приведенном ниже методе проверяется, содержит ли пара пустую ссылку на объект. Данному методу вообще не требуется конкретный тип.

public static boolean hasNulls(Pair<?> p) {
    return p.getFirst() == null || p.getSecond() == null;
}

На следующем шаге мы поговорим про захват подстановок

Предыдущий шаг Содержание Следующий шаг