Java — EnumSet.add(enum), генерирует исключение NullPointerException

Это на Java, кросс-платформенная и отлаживается на компьютере под управлением Ubuntu Oneric с OpenJDK, установленным в качестве среды выполнения.

У меня есть EnumSet для проверки внутри класса в игре, над которой я работаю. У меня есть это чтение из logcat, из изобилия отладки в моем конструкторе:

Tile : passability being set...?
Exception in thread "Thread-1" javax.media.opengl.GLException:java.lang.NullPointerException
    ...
Caused by: java.lang.NullPointerException
    at net.darkglass.map.Tile.addPassability(Tile.java:144)
    ...

Не забавно. Отслеживая это, моя проблема, кажется, полностью состоит в этой строке:

public void addPassability(Passability type)
{
    this.passability.add(type);
}

Под которой я подразумеваю тело этой функции. Он вызывается из конструктора как:

this.addPassability(Passability.AIR);

Когда возникает исключение NullPointerException. В теле типа перечисления Passability у меня есть

public enum Passability
{
    AIR, ALL, GROUND, NONE, SIGHT, SKILL, STRUCTURE, WATER;
}

как, буквально, полное объявление пакета сохранения перечисления. this.passability объявлен

private EnumSet <Passability> passability;

в начале определения класса, и у меня сложилось впечатление, что метод add() был унаследован как часть определения EnumSet в стандарте Java.

Я самоучка, но не сумасшедшая.Либо у меня что-то не так, либо есть лучший способ сделать это. Кто-нибудь, обладающий полезными знаниями, может помочь?

8
задан That Guy 5 April 2012 в 16:06
поделиться