我已經在數組中有一個數組,並且想要爲每個循環初始化一個數組。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