Ich habe dies:Wie kann man wissen, ob List.remove() "nicht unterstützt" ist?
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
public class ListTest {
public static void main(String[] args) {
String[] values = { "yes", "no"};
List<String> aa = Arrays.asList(values);
System.out.println(aa.getClass().getName());
aa.remove(0);
}
}
Es gibt:
$ java ListTest
java.util.Arrays$ArrayList
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:161)
at ListTest.main(ListTest.java:12)
Frage: Ich verstehe, warum ich diese Ausnahme immer bin. Es ist, weil die ArrayList
Klasse von innen Arrays.java
verwendet wird, die keine remove()
Methode hat. Meine Frage ist, wie kann jemand (jeder Benutzer, wie ich) vor der Verwendung wissen, dass die List
erhalten, dass es keine remove
Methode enthält?
Das OP weiß das. Die Frage war, ob es einen Weg gab, diesen Mangel an Implementierung zu erkennen, ohne den konkreten Typ der Liste zu kennen. – ApproachingDarknessFish