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)
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).