我已经在数组中有一个数组,并且想要为每个循环初始化一个数组。Java数组未保持初始化
// class variable
Tree[][] trees;
// in constructor
this.trees = new Tree[length][with];
// initialize
for (Tree[] tree : this.trees){
for(Tree tree2 : tree){
tree2 = new Tree();
System.out.println(tree2);
}
}
for (Tree[] tree : this.trees) {
for (Tree tree2 : tree) {
System.out.println(tree2);
}
}
会发生什么是第一个println打印初始化树,所以他们得到初始化。我认为一切都很好。但是当我尝试使用这些树时,我得到了一个nullpointerexception。所以我试着再次遍历数组,第二个println为每棵树都给出了null。怎么会这样?我在这里错过了什么?谢谢!
编辑:哦,我很抱歉,这不是主要的,但循环放置的构造函数方法。
你不能在'main'方法中使用'this',因为'main'是'static'。此外,这个代码'tree2 = new Tree();'完全没有效果,因为'tree2'只是循环中的一个局部变量。没有办法按照你想要的方式用每个循环来初始化对象。 – jlordo