errの部分はコードで大文字になっていますが、これもforeachingに含まれています。抽象リストのため、初期化できません。宣言は静的フィールドにあります。リストは同じタイプです。
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);
}
}
}
初期化で新しいList()を使用しないのはなぜですか?
初期化されなかった理由は、を使用できないことでした= new List<String>()
。私はそれを許可しないロジックを見ることができません。それは、データ構造などの本質的な要因と関係があるに違いありません。
Test.java:7: java.util.List is abstract; cannot be instantiated
public static List<String> ops = new List<String>();
なぜリストはインターフェースなのですか?
スタックなどの多くのデータ構造がリストを実装していることを私は知っています。しかし、なぜリストがインターフェースであるのか、そしてなぜテーブルではないのか、私には理解できません。リストは、他の構造を実装できる基本的な構造だと思います。インターフェイスは、構造の要件を指定できるものです。原始性または広大さはインターフェースである理由ですか?