Если вы хотите сохранить массив объектов типа 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>();