Наполнить список в одном событии, и вывести в другом

Если вкратце, мне нужно объявить список, наполнить его в одном событии, и вывести наполненный список в другом. Но проблема в том, что события статичны, и если я объявлю список в EventsHandler'е, то из тела события через this к этому списку обратиться нельзя, да и по логике это не правильно, так как статичные методы не привязаны к объекту класса. Как мне поступить для реализации этой задачи?
 
7,099
324
1,510
Но проблема в том, что события статичны, и если я объявлю список в EventsHandler'е, то из тела события через this к этому списку обратиться нельзя
Переменные тоже могут быть статичными
 
Не бейте. Лучше обоссыте.
Я бы не создавал тему, если бы не попробовал сделать список статичным. Но почему-то после того, как я пытался получить size() у статичного списка, у меня крашился майнкрафт, подумал что проблема именно в статике, но похоже все таки в другом. Что может приводить к крашу в этом коде?
Java:
private class mobDeath {
    public String name;
    public Date deathAt;
    public Date respawningTime;

    public mobDeath(String name, Date deathAt, Date respawningTime) {
        this.name = name;
        this.deathAt = deathAt;
        this.respawningTime = respawningTime;
    }

}

private static List<mobDeath> mobDeaths;

@SubscribeEvent
public static void onRenderGameOverlay(RenderGameOverlayEvent.Post e) {
    Minecraft mc = Minecraft.getMinecraft();
    String text = mobDeaths.size() + "";
    mc.fontRenderer.drawString(text, 5, e.getResolution().getScaledHeight() - 10, 0x6028ff, false);
}
По идее, при получении size() у пустого списка, в данном примере должно вывести число 0, но вместо этого происходит краш. Даже если не приводить к строке size, а просто вызвать метод не присвоив к переменной, майнкрафт крашит. Вот сейчас задумываюсь, возможно это из-за самого события?

UPD:
Нет. Событие тут не причем. Краш происходит конкретно из-за вызова метода size() у новосозданного списка. Попробовал size получить вне события, и всёравно крашит.
Java:
private static List<mobDeath> mobDeaths;

private static final int mobDeathsCount = mobDeaths.size();
 

Вложения

  • crash-2021-04-10_17.27.46-client.txt
    4.2 KB · Просмотры: 0
Последнее редактирование:

GoogleTan

Картошка :3
1,354
43
310
Это не С++, тут конструктор по умолчанию автоматически не вызывается. У тебя переменная нул, до того как ты ее к чему-то не приравняешь:
Java:
mobDeaths = new ArrayList;
 
Сверху