我的类的私有属性为null

时间:2011-03-01 18:43:38

标签: java swing

我有以下代码:http://aiids.pastebin.com/aLGYjraC

问题出在第84行,它在programmaBesteller上给了我一个NullPointerException。当我调试时,每个私有成员(JMenu和JMenuItem)都为null:s。

我没有看到问题因为我新的DefaultMenuBar() ......

2 个答案:

答案 0 :(得分:5)

从超类构造函数调用 buildMenuProgramma 方法?那些字段尚未在该阶段实例化。

答案 1 :(得分:1)

以下是一些代码,我认为这些代码可以证明您遇到的问题:

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在超类构造函数时实际上并未初始化。希望能让它更清晰。