Метод класса Enum дает нулевой указатель - PullRequest
0 голосов
/ 26 октября 2018

Эй, я пытаюсь работать с классом enum, но этот класс продолжает давать мне нулевые точки, если я пытаюсь вызвать метод getLocation ... Кто-нибудь знает, что случилось?

Класс перечисления:

    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();
    }
    }

Класс, проходящий по классу enum: nullpointer в журнале 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 голосов
/ 26 октября 2018

Когда ваша программа запускается впервые, значения перечисления ZulrahLocation инициализируются текущими значениями ваших плиток ZulrahScript.Поскольку вы определяете их в методе (onStart), который необходимо вызвать, начальные значения, которые используются, на самом деле null.

В вашем классе ZulrahScript вы можете объявить и определить переменные в одной строке.

public class ZulrahScript {
    ...
    public static InstanceTile TILE_CENTER = new InstanceTile(164, 99, 0,this);
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...