Sto tentando di rimuovere alcuni elementi da un List
, ma anche gli esempi più semplici, come quelli in this answer o this, non funzioneranno.UnsupportedOperationException quando si utilizza iterator.remove()
public static void main(String[] args)
{
List<String> list = Arrays.asList("1", "2", "3", "4");
for (Iterator<String> iter = list.listIterator(); iter.hasNext();)
{
String a = iter.next();
if (true)
{
iter.remove();
}
}
}
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(Unknown Source)
at java.util.AbstractList$Itr.remove(Unknown Source)
Utilizzando un normale Iterator
invece di un ListIterator
non aiuta. Cosa mi manca? Sto utilizzando Java 7.
Non è il punto centrale di un linguaggio OO sicuro come Java non avere sottoclassi che non supportano i metodi delle superclassi? – Yamcha
@Yamcha yeah ... java non è un linguaggio molto ben progettato. Se stai cercando delle alternative, ti consiglio la scala. – Dima