java stack NullPointerException

Ale*_*anu 0 java null stack nullpointerexception

我有一个类Floor有一个Stack块,我不知道如何初始化它.我试过这样的:

public class Floor {
    private Stack<Block> stack;
    private static int size;
    public void setStack(Stack<Block> stack) {
        this.stack = stack;
    }
    public void addBlock(Block b){
        stack.push(b);
    }
}

public class InputDevice {
    Block a0=new Block('I',false);
    Floor [] floor=new Floor[5];
    Stack<Block> stack=new Stack<Block>();
    floor[0].setStack(stack);
    floor[0].addBlock(a0);
}
Run Code Online (Sandbox Code Playgroud)

Ken*_*ent 5

Floor [] floor=new Floor[5];
Run Code Online (Sandbox Code Playgroud)

你声明了数组,但你没有初始化元素,然后:

floor[0].setStack(stack); floor [0]为null,npe!

另外我建议在你的Floor类中,addBlock(Block b)方法,检查堆栈是否为null,如果是null,否则如果有人初始楼层,则会出现问题(NPE),并直接floor.addBlock(b).