Как инициализировать статический список <T>? - PullRequest
4 голосов
/ 14 марта 2011

Я не могу понять, что идет не так в этой декларации

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 ]

4 голосов
/ 14 марта 2011

Список - это абстрактный тип, который расширяется и реализуется различными типами списков. Попробуйте следующее:

    public static void main ( String [] arg ) throws IOException {
         vertices = new ArrayList<Vertex>(); 
    }
1 голос
/ 14 марта 2011

Список является интерфейсом и не может быть мгновенным. Вместо этого используйте ArrayList или LinkedList.

vertices = new ArrayList<Vertex>();
0 голосов
/ 14 марта 2011

Eclipse жалуется, потому что List не может быть создан, потому что это интерфейс, а не конкретный класс. У вас есть 2 варианта здесь

Option1:

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
}

Option2:

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
}
0 голосов
/ 14 марта 2011

Вам необходимо использовать реализацию List, например:

vertices = new ArrayList<Vertex>();
0 голосов
/ 14 марта 2011

List это не класс, а интерфейс. Поскольку интерфейс не является полной конкретной реализацией чего-либо, что может быть реализовано. Вы можете делать новые только для неабстрактных классов. Поэтому попробуйте создать экземпляр ArrayList или другую реализацию.

0 голосов
/ 14 марта 2011

Попробуйте:

vertices = new ArrayList<Vertex>();

List - это интерфейс в Java, поэтому вам нужно использовать одну из его реализаций.

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

0 голосов
/ 14 марта 2011

Список - это интерфейс. Вам нужно использовать класс, который реализует List, такой как ArrayList.

...