У меня есть следующий код:Почему <? расширяет интерфейс> вместо <? реализует интерфейс>
ArrayList<? extends IValues> valuesList
IValues
является interface
. Список заполнен классами/объектами, которые implement
интерфейс IValues
. Я понимаю концепцию каждого объекта в этом списке, который должен выполнить контракт, установленный интерфейсом, который они реализуют. Почему не язык Java сделать это так:
ArrayList<? implements IValues> valuesList
? Это было бы намного понятнее пользователю, не так ли?
Как вы думаете, было бы ясно, что 'ArrayList' соответствует вашему предложенному ограничению? –
Просто произвольный выбор языка. –