Использование универсального подстановочного знака вместо интерфейса

Если вы хотите сохранить массив объектов типа MyInterface , приемлемы следующие варианты, и если да, то когда вы будете использовать вторую форму над первым?

i) Использование только интерфейса: -

List<MyInterface> mylist = new ArrayList<MyInterface>();

ii) Использование универсального подстановочного знака: -

List<? extends MyInterface> mylist = new ArrayList<? extends MyInterface>();

Изменить:

Как уже указывалось в ответах, номер ii не компилируется. В чем разница между i и случаем iii, когда: -

iii) Использование универсального подстановочного знака только в ссылке: -

List<? extends MyInterface> mylist = new ArrayList<MyInterface>();
12
задан Martin 24 April 2011 в 15:53
поделиться