Чтобы создать список списков в этой ситуации, вам нужно использовать <? extends A>
, чтобы разрешить подклассы A, а не только самого A.
List<B> blist = new ArrayList<B>();
List<C> clist = new ArrayList<C>();
List<List<? extends A>> listofalist = new ArrayList<List<? extends A>>();
listofalist.add(blist);
listofalist.add(clist);
Если вместо этого вы хотите скопировать содержимое списков B и C в список A, вам нужно использовать ArrayList.addAll()
, а не add()
.
add(Object o)
для добавления отдельных объектов в список.
addAll(Collection c)
- для добавления всего содержимого одного списка в другой список (или другую коллекцию).
См. javadoc для ArrayList.