частная собственность моего класса равна нулю - PullRequest
0 голосов
/ 01 марта 2011

У меня следующий код: http://aiids.pastebin.com/aLGYjraC

Проблема в строке 84, она дает мне исключение NullPointerException для programmaBesteller.Когда я отлаживаю, каждый закрытый член (JMenu и JMenuItem) имеет значение null: s.

Я не вижу проблемы, потому что я делаю new DefaultMenuBar () ...

Ответы [ 2 ]

5 голосов
/ 01 марта 2011

Может быть buildMenuProgramma метод вызывается из конструктора суперкласса? Эти поля еще не созданы на этом этапе.

1 голос
/ 01 марта 2011

Вот некоторый код, который, я думаю, демонстрирует вашу проблему:

public abstract class Super {

    public static void main(String[] args) {
        new Sub();
    }

    public Super() {
        printMe();
    }

    abstract void printMe();

    private static class Sub extends Super {

        private final Object x = new Object();

        public Sub() {
            super();
            printMe();
        }

        @Override
        protected void printMe() {
            System.out.println("printMe: " + x);
        }
    }
}

Вывод:

printMe: null
printMe: java.lang.Object@1fee6fc

, то есть поле x, которое явноинициализируется и выглядит так, как будто он не может быть null на самом деле не инициализирован во время конструктора суперкласса.Надеюсь, это прояснит ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...