Spec-Zone .ru
спецификации, руководства, описания, API
|
Верхний Ограниченный Подстановочный раздел показывает, что верхний ограниченный подстановочный знак ограничивает неизвестный тип, чтобы быть определенным типом или подтипом того типа и представляется, используя ключевое слово 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); } }
Направляющие линии для Подстановочного раздела Использования дают представление о том, когда использовать верхние ограниченные подстановочные знаки и когда использовать ниже ограниченные подстановочные знаки.