Да, его небезопасным, поэтому вы не можете добавить к нему при использовании его в качестве параметра. Вы можете читать только это.
List<?>
означает список, набранный неизвестным типом. Это может быть List<A>, a List<B>, a List<String>
и т. Д.
Поскольку вы не знаете, к какому типу вводится список, вы можете читать только из коллекции, и вы можете рассматривать объекты только как объекты.
public void processElements(List<?> elements){
for(Object o : elements){
System.out.println(o);
}
}
В этом методе вы не можете добавлять вещи в «элементы». Только читайте вещи, потому что вы не можете знать, какой тип элементов.
Читайте на подстановочных знаков. –
http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html –