Почему не удается добавить объект в Map из его конструктора в Java? public class Quest {
static Map IDs;
String Text;
Quest(String Text, int ID){
this.Text = Text;
IDs.put(ID, this);
}
Программа выдает NullPointerException на строку IDs.put(ID, this);
Что я делаю не так?

21 Авг 2019 в 07:05
158 +1
0
Ответы
1

Проблема здесь заключается в том, что вы пытаетесь добавить объект в Map IDs до его инициализации. Вы объявили переменную IDs, но не проинициализировали ее, поэтому она по умолчанию равна null. Когда вы пытаетесь вызвать метод put() на null переменной, это приводит к NullPointerException.

Чтобы исправить это, вы можете проинициализировать Map IDs перед добавлением объектов в нее, например, в конструкторе класса Quest:

public class Quest {
static Map<Integer, Object> IDs = new HashMap<>();
String Text;
Quest(String Text, int ID){
this.Text = Text;
IDs.put(ID, this);
}
}

Теперь Map IDs будет проинициализирована и вы сможете успешно добавлять объекты в нее из конструктора.

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