Esto está en Java, multiplataforma y se depura en una computadora que ejecuta Ubuntu Oneric con OpenJDK instalado como mi tiempo de ejecución.Java - EnumSet.add (enum), throws NullPointerException
Tengo un EnumSet para verificar dentro de una clase en un juego en el que estoy trabajando. Tengo esta lectura de logcat, de depuración en abundancia en mi constructor:
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)
...
No es divertido. Seguimiento hacia abajo, mi problema parece ser, en su totalidad, esta línea:
public void addPassability(Passability type)
{
this.passability.add(type);
}
Por lo cual quiero decir que el cuerpo de la función. Se llama desde el constructor como:
this.addPassability(Passability.AIR);
Cuando ocurre la excepción NullPointerException. En el cuerpo de la transitabilidad Enum Tipo, tengo
public enum Passability
{
AIR, ALL, GROUND, NONE, SIGHT, SKILL, STRUCTURE, WATER;
}
como, literalmente, toda la enumeración guardar declaración del paquete. this.passability se declara
private EnumSet <Passability> passability;
al comienzo de la definición de clase y yo estaba bajo la impresión de que el método add() se hereda como parte de la definición de EnumSet en la Norma de Java.
Soy autodidacta, pero no estoy loco. O tengo algo mal o hay una mejor manera de hacer esto. ¿Alguien con algún conocimiento útil por ahí capaz de echar una mano?
podría mostrar más trozos de su código. Todo lo que veo es una línea aquí y allá. – Adrian
Jon Skeet lo tiene. Nunca lo inicialicé porque estoy tan acostumbrado a solo usar primitivos ~ Intento BESAR mi trabajo porque mantiene las cosas en su sano juicio. –