2013-11-18 1 views
0

Когда я пытаюсь сбросить список, отмеченный, я получаю исключение Null Pointer.Java Object (Boolean, Integer), когда add get NullPointerException

Проблема должна быть причиной, я никогда не говорил, что такое B и C. (Boolean B, Integer C) И я не знаю, как это сделать.

Вот часть моего кода:

Marked[] marked; 


//Create list marked! 
public class Marked<B,C>{ 
    public B bool; 
    public C comp; 
} 

public Graph(int N) 
{ 

    //Fill marked with false and 0 
    marked = new Marked[N]; 
    for(int i=0;i<N;i++){ 

     marked[i].bool = false; 
     marked[i].comp=0; 
    } 

ответ

5

Создание массива Marked фактически не инициализации элементов в массиве:

marked = new Marked[N]; 
for(int i = 0; i < N; i++) { 
    marked[i] = new Marked<Boolean, Integer>(); 
    marked[i].bool = false; 
    marked[i].comp = 0; 
} 
+0

Спасибо! Хорошо работает сейчас :) –

+0

@STUDENT_LIFE Не забудьте принять ответ, если он вам помог =) –

2

Оператор marked = new Marked[N]; создает новый массив Marked объектов с N элементов, но не инициализирует их. Каждый элемент в этом массиве будет null. Вам необходимо вручную инициализировать их, вызвав конструктор.

Таким образом, ваш цикл должен выглядеть следующим образом:

for(int i=0;i<N;i++) { 
    marked[i] = new Marked(); 
    marked[i].bool = false; 
    marked[i].comp=0; 
} 
+0

Спасибо вам за ваш быстрый ответ! :) –

Смежные вопросы