Я довольно новыми для Java и серьезно ржавый на строгих C-подобных языках, так что я не могу обернуть мою голову вокруг этого вопроса:NullPointerException при попытке нажать InputEvent в ArrayDeque
import java.awt.event.InputEvent;
import java.util.ArrayDeque;
class DataBase
{
private ArrayDeque<InputEvent> inputEvents;
private static final DataBase instance = new DataBase();
private DataBase() {}
public InputEvent pollEventStack()
{
return inputEvents.poll();
}
public boolean pushToEventStack(InputEvent event)
{
boolean result = false;
try {
result = inputEvents.add(event);
} catch (NullPointerException e) {
Debug.log(event.paramString()); // We end up here with valid data in the log. Event is not as null as it claims to be, huh?
System.exit(0);
}
return result;
}
public static DataBase getInstance()
{
return instance;
}
}
Если интересно, вот текущая строка я получаю в журнале:
KEY_PRESSED,keyCode=27,keyText=Escape,keyChar=Escape,keyLocation=KEY_LOCATION_STANDARD,rawCode=27,primaryLevelUnicode=27,scancode=1,extendedKeyCode=0x1b
Я уверен, что это что-то до смешного просто я пропускаю, к сожалению, поиск дает не конструктивных результатов.
P.S .: В качестве боковой опоры имеется универсальный ящик для хранения данных для всех моих сущностей, даже хорошая идея? InputEvents, вероятно, лучше всего в своем классе, но в конечном итоге это должно хранить ресурсы gfx, врагов, элементов и т. Д. Или это должно быть?
Кстати, вы имели в виду использовать ArrayDeque, или вы нацелились на простой ArraList? – drvdijk
@ drvdijk Учитывая, что это простой стек действий для событий key и mouse, все, что мне нужно - это возможность push и pop. Я не уверен, что ArrayDeque - это правильный путь. Как я уже сказал, Java для меня нова. –
@drvdijk О да, и переменный размер, вероятно, также необходим. Невозможно взломать всю память огромным буфером или слишком низкое ограничение на сохраненные события. Для этого достаточно подходящего для этого места. Какие недостатки мне не хватает? –