Исключение нулевого указателя в цикле for

#java #nullpointerexception

#java #исключение nullpointerexception

Вопрос:

Почему я получаю это исключение нулевого указателя при выполнении цикла for?

Исключение в потоке «AWT-EventQueue-0» java.lang.Исключение NullPointerException в A3JPanel.actionPerformed(A3JPanel.java:141) в javax.swing.Timer.fireactionпереработан (неизвестный источник) в javax.swing.Таймер $DoPostEvent.run (неизвестный источник) при java.awt.event.Событие вызова.отправка (неизвестный источник)

Мой код:

 for (int i = 0; i < dots.length; i  ) {
dots[i].moveDots();
}
  

Комментарии:

1. Вероятно, это связано с тем, что dots массив или один из элементов в нем является null . Можете ли вы предоставить больше контекста окружающего кода, чтобы мы могли попытаться понять, почему это может быть?

2. Это не исключение нулевого указателя. Это немного кода.

3. Держу пари, что вы создали массив точек, но еще не заполнили его точечными объектами. Это моя ДОБЫЧА. Решение, сначала выполните цикл по массиву и заполните его новыми точечными объектами.

4. Исключение в потоке «AWT-EventQueue-0» java.lang. Исключение NullPointerException в A3JPanel.actionPerformed(A3JPanel.java:141) в javax.swing. Timer.fireactionпереработан (неизвестный источник) в javax.swing. Таймер $DoPostEvent.run (неизвестный источник) при java.awt.event. Событие вызова.отправка (неизвестный источник)

5. Точки — это падающие точки в игре, которую я создаю, когда я вызываю для них метод move, они обновляют свое положение. после того, как я запускаю программу и получаю нулевой указатель, открывается мое окно, в котором отображаются нарисованные точки, но они движутся не так, как должны быть.

Ответ №1:

Вам придется инициализировать каждый элемент массива, прежде чем вы сможете выполнять с ними операции, подобные этой

 Dot[] dots = new Dot[10];

for (int i = 0; i < dots.length; i  ) {
    dots[i] = new Dot();
    dots[i].moveDots();
}
  

Ответ №2:

Ваша трассировка стека была не очень полезной, но даже если вы инициализировали все свои Dot объекты в dot массиве, ваш moveDots() метод может быть ответственен за исключение NullPointerException. Можете ли вы показать нам немного больше вашего кода, чтобы мы знали, в чем проблема? Очевидно, что этого нет в том небольшом фрагменте, который вы опубликовали.