У меня есть массив, инициализированный и заполненный, но я не могу получить доступ к его значениям в других методах, чем тот, который он заполняет. Если я пытаюсь работать с ним в других методах, я получаю исключение nullPointerException. Например, если я говорю «System.out.println (board [2] [2])» внутри метода init, он работает, но в другом методе выбрасывается исключение nullPointerException. Я много часов пытался понять, но не знаю, что случилось? Может ли кто-нибудь осветить мою проблему? Это будет высоко ценится. БлагодаряНе удается получить доступ к массиву в методе?
public class Program2 extends JPanel implements ActionListener
{
private LifeCell[][] board;
private JButton next;
private JFrame frame;
public static void main(String[] args) {new Program2();}
public Program2()
{
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(this);
this.init();
frame.pack();
frame.setVisible(true);
}
public void init()
{
LifeCell[][] board = new LifeCell[10][10];
this.setPreferredSize(new Dimension(400, 500));
this.setLayout(null);
for (int r = 0; r < 10; r++)
{
for (int c = 0; c < 10; c++)
{
board[r][c] = new LifeCell(board, r, c);
this.add(board[r][c]);
board[r][c].setBounds(x,y,40,40);
this.setVisible(true);
System.out.println(board[2][2]) //works
}
}
}
public void test(){ System.out.println(board[2][2])}//doesn't work
}
Вопрос уже достаточно отвечен, но я хотел бы добавить, что вы можете настроить IDE так, чтобы он помог вам найти такие проблемы. Например.eclipse поддерживает это: Предпочтения -> Java -> Компилятор Java -> Ошибки/Предупреждения затем включаются. Объявление локальной переменной скрывает другое поле или переменную. – shutefan