У меня есть следующий общий вид:Возможно ли использовать список общего типа в Java?
public class Library<T> {}
мне нужно поместить каждый общий тип в список - например:
ArrayList<Library<Photo>> listPhotoLibrary
= new ArrayList<Library<Photo>>();
ArrayList<Library<Video>> listVideoLibrary
= new ArrayList<Library<Video>>();
я тогда нужно поместить этот список в общий список. Сначала я пробовал:
ArrayList<Library<?>> listTopLibrary = new ArrayList<Library<?>>();
Приведенный выше код позволил мне добавить все библиотеки в плоский список. Однако это не то, что я хочу. Я хочу иметь список типизированных библиотек в другом списке. Например, индекс 0 представляет собой список видео-библиотек, индекс 1 - список библиотек фотографий и т. Д. Я попытался сделать следующее:
ArrayList<ArrayList<Library<?>>> listTopLibrary
= new ArrayList<ArrayList<Library<?>>>();
Это не работает. Когда я попытался добавить к списку, он говорит мне:
The method add(ArrayList<Library<?>>) in the type ArrayList<ArrayList<Library<?>>>
is not applicable for the arguments (ArrayList<Library<Photo>>)
Любая идея, почему компилятор жалуется? И если есть способ обойти это?
Спасибо, что это правильный ответ, и спасибо за ссылку на другую, было довольно сложно найти правильное ключевое слово. – user3804927