Java: ListA.addAll(ListB) feux de NullPointerException?

Le tre la partie est Capitalisée dans le code, il est également livré dans foreaching. En raison de l'abrégé de la liste, il ne peut pas être initialisé, la déclaration est dans un champ statique. Les listes ont le même type.

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 pas une nouvelle Liste() dans l'initialisation?

La raison pour ne pas l'initialisation de l'incapacité à utiliser = new List<String>(). Je ne vois pas une logique ne lui permettant pas. Il doit avoir quelque chose à voir avec des facteurs intrinsèques tels que les données de strucs ou quelque chose d'autre.

Test.java:7: java.util.List is abstract; cannot be instantiated
public static List<String> ops = new List<String>();

Pourquoi liste est une interface?

Je sais que beaucoup de données strucs comme la pile met en œuvre la liste. Mais je ne comprends pas pourquoi la Liste est une interface et pourquoi pas à Table par exemple. - Je voir la liste en tant que structure primitive avec lequel vous pouvez mettre en place d'autres structures. L'Interface est une chose dans laquelle vous pouvez spécifier les exigences pour une structure. Est le primitivenness ou extensivenss raison d'être d'une interface?

OriginalL'auteur hhh | 2010-05-08