La partie err est capitalisée dans le code, il est également disponible en foreaching. En raison de la liste abstraite, il ne peut pas être initialisé, déclaration est dans un champ statique. Les listes ont le même type.Java: ListA.addAll (ListB) déclenche NullPointerException?
import java.util.*;
public class Test
{
public static final List<String> highPrio = Arrays.asList("*","/");
public static List<String> ops;
public static void main(String[] args)
{
//ERROR HERE, why do it throw nullPointer?
ops.addAll(highPrio);
for(String s : ops)
{
System.out.println(s);
}
}
}
Pourquoi ne pas nouvelle liste() lors de l'initialisation?
La raison de l'absence d'initialisation était l'impossibilité d'utiliser = new List<String>()
. Je ne peux pas voir une logique ne le permettant pas. Cela doit avoir quelque chose à voir avec des facteurs intrinsèques tels que les structures de données ou autre chose.
Test.java:7: java.util.List is abstract; cannot be instantiated public static List<String> ops = new List<String>();
Pourquoi la liste est une interface?
Je sais que beaucoup de données strucs telles que la pile met en œuvre la liste. Mais je ne comprends pas pourquoi List est une interface et pourquoi pas Table par exemple. Je vois la liste comme une structure primitive avec laquelle vous pouvez implémenter d'autres structures. L'interface est une chose où vous pouvez spécifier les exigences pour une structure. La primitivité ou l'extensivenss sont-ils des raisons d'être une interface?
Test.java:7:. java.util.List est abstraite, ne peut pas être instancié \t Liste public static ops = new Liste (); <- - mais je ne peux pas le comprendre –
hhh
Liste est une interface, donc il n'a pas de constructeur –
Liste est une interface, mais si vous lo ok au code, il est en train de créer une ArrayList qui implémente l'interface List –