Проще говоря, нет.
Причина в том, что у компилятора нет никаких доказательств того, что типы времени выполнения элементов list1
будут B
(или любым подтипом B
),Они могут иметь тип C extends A
, что может привести к ClassCastException
с во время выполнения.
Однако вы всегда можете пройти через list1
и добавить все элементы к list2
, выполнив приведение (только если вы уверены, что типы совместимы, конечно).Даже если это сработает, это признак плохого дизайна.