2017-02-20 9 views
-2

У меня есть этот очень простой код:Java код говорит: NullPointerException

public class Player{ 
    private int x,y,velX,velY,width,height,id; 
    private boolean isControllable; 


    public Player(int _x,int _y,int _width,int _height,int _id,boolean _cont){ 
     x = _x; 
     y = _y; 
     width = _width; 
     height = _height; 
     id = _id; 
     isControllable = _cont; 
     if(_cont == true){ 
      addToCont(); 
     } 
    } 

    private void addToCont(){ 
     Main.controllable.add(this); 
    } 

} 

И это:

public class Main { 

    public static Render render = new Render(); 
    public static Controlls controll = new Controlls(); 

    public static LinkedList<Player> controllable; 

    public static void main(String[] args) { 
     controllable = new LinkedList<Player>(); 
     render.height = 750; 
     render.width = 1000; 
     render.RenderWindow(); 
    } 
} 

Как Вы можете видеть, что я пытаюсь добавить этот экземпляр класса игрока в связанном списке , Но он возвращает ошибку:

Exception in thread "main" java.lang.ExceptionInInitializerError 
Caused by: java.lang.NullPointerException 
at game.Player.Player.addToCont(Player.java:23) 
at game.Player.Player.<init>(Player.java:18) 
at game.Main.Render.<init>(Render.java:28) 
at game.Main.Main.<clinit>(Main.java:9) 

Что я делаю неправильно?

+0

Ваш класс '' Render'' создает объект '' Player'', который обращается к '' Main.controllable'', который равен NULL. – f1sh

+0

Это не дубликат, так как я знаю, что такое NullPointerExc, и я знаю, как его исправить. – Ervin

+2

Тогда почему это не исправлено? – f1sh

ответ

2

управляемый не создается. Замените его в Main на:

public static LinkedList<Player> controllable = new LinkedList<>(); 
+1

Я также переместил бы его несколько строк вверх, которые будут созданы до создания конструктора Render – user902383

+0

_not instantiated_ пока;) это приятно смешивать со статическим и нестационарным контекстом. – AxelH

+0

Для всех людей там, кто сделал этот кустарник как дубликат: вот такой ответ, которого я ждал! Thak You tak3shi – Ervin

 Смежные вопросы

  • Нет связанных вопросов^_^