填充对象数组时的java.lang.NullPointerException

时间:2012-04-02 17:33:59

标签: java

我在这里缺少一些东西。使用此代码我得到java.lang.NullPointerException

public static void main(String[] args) {

    Board board = new Board();
    board.Initialise();

}


public class Board {

private Obj[][] tableau;

public void Board() {

    tableau = new Obj[8][8];    
}

public void Fill_Board() {

    tableau[0][0]= new Obj('B');
    }
}

但是使用其他代码我没有错误。我做错了什么,以及如何正确初始化这个对象数组?

public class Board {

private Obj[][] tableau = new Obj[8][8];

public void Board() {

}

public void Fill_Board() {

    tableau[0][0]= new Obj('B');
    }
}

2 个答案:

答案 0 :(得分:2)

Board()最终成为成员函数而不是构造函数,因此永远不会被调用。问题是void关键字,需要将其删除:

public Board() { /* removed the `void' */
    tableau = new Obj[8][8];    
}

答案 1 :(得分:0)

当我运行此代码(将Obj更改为实际类)时,我没有收到任何错误,也许您可​​以提供一个更具体的示例,其中包含您尝试执行的主要方法?

如果你正在寻找一个构造函数,那么它需要与你的类名相同,即Tab并且没有返回类型。

所以你需要添加:

public Tab() {
    // initialization code here
}

只要您创建该类的新实例,您的构造函数就会运行。您想用它来初始化所有变量。

Tab t = new Tab(); // Constructor runs

编辑:

你的主要方法是使用类Board,但是你给了我们一个名为Tab的类。我可以假设您真的想要班级委员会,所以您应该在上面的示例中将所有Tab更改为Board,如果这是您正在寻找的。