如何初始化静态List <t>?</t>

时间:2011-03-14 13:58:00

标签: java collections static initialization

我似乎无法理解此声明中出现的问题

public static List<Vertex> vertices; 

// where Vertex is a class with a default constructor 

public static void main ( String [] arg ) throws IOException {
vertices = new List<Vertex>(); // eclipse complains
}

我应该在哪里以及如何初始化此列表..... 由于这个,当我继续添加列表时,它抱怨空指针异常.....任何人都可以告诉我我做错了什么....

7 个答案:

答案 0 :(得分:4)

List是一种抽象类型,由各种类型的列表扩展和实现。 请尝试以下方法:

    public static void main ( String [] arg ) throws IOException {
         vertices = new ArrayList<Vertex>(); 
    }

答案 1 :(得分:1)

列表是一个界面,无法进行即时处理。改为使用ArrayList或LinkedList。

vertices = new ArrayList<Vertex>();

答案 2 :(得分:0)

List是一个接口。您需要使用实现List的类,例如ArrayList。

答案 3 :(得分:0)

尝试:

vertices = new ArrayList<Vertex>();

List是Java中的一个接口,因此您需要使用其中一个实现。

http://download.oracle.com/javase/6/docs/api/java/util/List.html

答案 4 :(得分:0)

List不是类,而是接口。由于接口不是任何事物的完整具体实现,因此可以实例化。你只能做新的不抽象类。因此,尝试实例化ArrayList或其他实现。

答案 5 :(得分:0)

您需要使用List的实现,例如:

vertices = new ArrayList<Vertex>();

答案 6 :(得分:0)

Eclipse抱怨因为List无法实例化,因为它是一个接口,而不是一个具体的类。 你有2个选择 -

选项1:

public static List<Vertex> vertices; 

// where Vertex is a class with a default constructor 

public static void main ( String [] arg ) throws IOException {
vertices = new ArrayList<Vertex>(); // eclipse does not complain
}

<强>选项2:

public static List<Vertex> vertices=new ArrayList<Vertex>(); 

// where Vertex is a class with a default constructor 

public static void main ( String [] arg ) throws IOException {
v
}