小编Tha*_*Guy的帖子

Java - EnumSet.add(枚举),抛出NullPointerException

这是Java,跨平台,并在运行Ubuntu Oneric的计算机上进行调试,OpenJDK作为我的运行时安装.

我有一个EnumSet用于检查我正在进行的游戏中的类内部.我有来自logcat的读数,来自我的构造函数中的debug aplenty:

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)
    ...
Run Code Online (Sandbox Code Playgroud)

不好笑.跟踪它,我的问题似乎完全是这条线:

public void addPassability(Passability type)
{
    this.passability.add(type);
}
Run Code Online (Sandbox Code Playgroud)

我指的是那个功能的主体.它从构造函数中调用为:

this.addPassability(Passability.AIR);
Run Code Online (Sandbox Code Playgroud)

发生NullPointerException时.在Passability Enum Type的主体中,我有

public enum Passability
{
    AIR, ALL, GROUND, NONE, SIGHT, SKILL, STRUCTURE, WATER;
}
Run Code Online (Sandbox Code Playgroud)

就字面意思而言,整个枚举保存包声明.this.passability已声明

private EnumSet <Passability> passability;
Run Code Online (Sandbox Code Playgroud)

在类定义的开头,我的印象是add()方法作为Java标准中EnumSet定义的一部分继承.

我是自学成才,但我并不疯狂.要么我有错误,要么有更好的方法来做到这一点.那些有一些有用知识的人能够伸出援手吗?

java enums nullpointerexception enumset

8
推荐指数
1
解决办法
7089
查看次数

标签 统计

enums ×1

enumset ×1

java ×1

nullpointerexception ×1