Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: (Обновленные) Обобщения
Раздел: Подстановочные знаки
Ниже Ограниченные Подстановочные знаки
Домашняя страница > Изучение Языка Java > (Обновленные) обобщения

Ниже Ограниченные Подстановочные знаки

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

Более низкий ограниченный подстановочный знак выражается, используя подстановочный символ ('?'), после ключевым словом super, сопровождаемым его нижней границей: <? super A>.


Отметьте: можно определить верхнюю границу для подстановочного знака, или можно определить нижнюю границу, но невозможно определить обоих.

Скажите, что Вы хотите записать метод, который помещает объекты Integer в список. Чтобы максимизировать гибкость, требуется, чтобы метод работал над List<Integer>, List<Number>, и List<Object> — что-либо, что может содержать значения Integer.

Чтобы записать метод, который работает над списками Integer и супертипами Integer, такими как Integer, Number, и Object, Вы определили бы List<? super Integer>. Термин List<Integer> является более рестриктивным чем List<? super Integer>, потому что прежние соответствия список типа Integer только, тогда как последние соответствия список любого типа, который является супертипом Integer.

Следующий код добавляет номера 1 - 10 до конца списка:

public static void addNumbers(List<? super Integer> list) {
    for (int i = 1; i <= 10; i++) {
        list.add(i);
    }
}

Направляющие линии для Подстановочного раздела Использования дают представление о том, когда использовать верхние ограниченные подстановочные знаки и когда использовать ниже ограниченные подстановочные знаки.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Неограниченные Подстановочные знаки
Следующая страница: Подстановочные знаки и Выделение подтипов