枚举类方法给出nullpointer

时间:2018-10-25 22:51:33

标签: java enums

嘿,我正在尝试使用一个枚举类,但是如果我尝试调用getLocation方法,则该类会一直给我提供nullpointers。有人知道吗?

枚举类:

    public enum ZulrahLocation {

    CENTER(ZulrahScript.TILE_CENTER),
    WEST(ZulrahScript.TILE_WEST),
    SOUTH(ZulrahScript.TILE_SOUTH),
    EAST(ZulrahScript.TILE_EAST);

    private InstanceTile location;

    ZulrahLocation(final InstanceTile location)
    {
    this.location = location;
    }

    public Position getLocation()
    {
        return location.toTile();
    }
    }

遍历枚举类的类:日志z1.getlocation()处的空指针

     for (ZulrahLocation zl : ZulrahLocation.values())
     {
     sI.log(String.valueOf(zl.getLocation()) + " Location of z1");
     }

如果有人想知道我正在设置主类中的所有图块,则在这里发生

    public void onStart () {
    TILE_CENTER                 = new InstanceTile(164, 99, 0,this);
    TILE_WEST                   = new InstanceTile(154, 97, 0,this);
    TILE_SOUTH                  = new InstanceTile(164, 88, 0,this);
    TILE_EAST                   = new InstanceTile(174, 97, 0,this);
    }

如果您需要其他信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

程序首次启动时,将使用您的ZulrahLocation磁贴的当前值来初始化ZulrahScript枚举值。因为您是在需要调用的方法(onStart)中定义它们的,所以实际上使用的初始值是null

在您的ZulrahScript类中,您可能需要在同一行上声明和定义变量。

public class ZulrahScript {
    ...
    public static InstanceTile TILE_CENTER = new InstanceTile(164, 99, 0,this);
    ...
}