java的new陣列,對數組裡每個物件必須再例項化
阿新 • • 發佈:2019-02-17
最近又搞起Android了,又要接觸java,有點蛋蛋的憂傷啊。。
new了一個物件二維陣列,呼叫物件的方法會提示null pointer
錯誤:gameData = new LinkUint[baseArray.length][baseArray[0].length]; for(int i = 0; i != gameData.length; ++i){ for(int j = 0; j != gameData[i].length; ++j){ gameData[i][j].setLinkUint(i, j, baseArray[i][j] == 1 ? true : false, -1); } }
Exception in thread "main" java.lang.NullPointerException
at GameData.genGameData(GameData.java:77)
at GameData.<init>(GameData.java:57)
at SglGameData.getInstance(SglGameData.java:20)
at main.main(main.java:4)
說明c++的思想在這裡又行不通了,那就一個個地new物件出來吧,這總可以了吧gameData = new LinkUint[baseArray.length][baseArray[0].length]; for(int i = 0; i != gameData.length; ++i){ for(int j = 0; j != gameData[i].length; ++j){ gameData[i][j] = new LinkUint(i, j, baseArray[i][j] == 1 ? true : false, -1); } }
輸出結果:
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1
-1-1-1-1-1-1-1-1-1-1