Почему выскакивает NullPointerException [ООП]? Есть код в 1-ом файле (Main.java)public void setGlory(long glory)
{
this.glory = glory;
}
и код во втором файлеMain m;
public Bank() throws InterruptedException, IOException
{
this.glory = Main.getGlory();
System.out.println("Your balance is: $"+money);
private void depositMoney() throws InterruptedException
{
for (int i = 0; i < 10; i++)
{
this.glory++;
System.out.println("Your glory is: ★"+glory);
Thread.sleep(1000);
}
m.setGlory(glory);
}
}
После цикла for - выскакивает ошибка, не пойму, почему

21 Авг 2019 в 07:03
184 +1
0
Ответы
1

Ошибка NullPointerException возникает потому, что вы не инициализировали переменную m типа Main. В конструкторе Bank() вы должны создать объект типа Main и присвоить его переменной m. В противном случае, когда вы вызываете метод setGlory() у переменной m, программа не знает, на каком объекте вызывать этот метод и поэтому возникает исключение NullPointerException.

Исправление:

Main m = new Main();
public Bank() throws InterruptedException, IOException
{
this.glory = Main.getGlory();
System.out.println("Your balance is: $"+money);
}
private void depositMoney() throws InterruptedException
{
for (int i = 0; i < 10; i++)
{
this.glory++;
System.out.println("Your glory is: ★"+glory);
Thread.sleep(1000);
}
m.setGlory(glory);
}

Теперь, после создания объекта Main в конструкторе Bank(), вы можете использовать переменную m для вызова метода setGlory() без ошибки NullPointerException.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир