2013-02-12 3 views
1

Я встречаю NullPointerException на clickCell[r][c] = false; и на new LifeGUI(new LifeModel(x, y, s); и не могу исправить его. Пожалуйста, объясните, почему эта проблема возникает и как я могу ее исправить.Почему я получаю это исключение NullPointerException?

Код:

public LifeModel(int rows, int cols, int cellSize) { 
    row = rows; 
    col = cols; 
    cSize = cellSize; 
    for (int r = 0; r < row; r++) { 
     for (int c = 0; c < col; c++) { 
      clickCell[r][c] = false; 
     } 
    } 
} 

public static void main(int x, int y, int s) { 
    new LifeGUI(new LifeModel(x, y, s));   
} 
+1

какой тип clickCell? похоже, может быть, вы просто не выделили его. – thang

ответ

2

Вы должны создать объект массива

boolean [][] clickCell = new boolean[rows][cols]; 

Добавить эту команду перед цикл.

Подробнее here

Если clickCell объявлен где-то еще, то команда должна быть:

clickCell = new boolean[rows][cols]; 

Или, как говорит GriffeyDog, добавьте new boolean[rows][cols] в том месте, где вы объявляете массив, в зависимости от логики вашей программы.

2

Вы не указали, где был объявлен массив clickcell, но, скорее всего, вы его объявили, но не инициализировали. Вы можете иметь

boolean[][] clickcell; 

но необходимость:

boolean[][] clickcell = new boolean[rows][cols]; 

где rows и cols представляют размер массива вам нужно.

+0

Оказывается, вы были правы, такая простая ошибка, спасибо за вашу помощь – Tiger101

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