當我嘗試訪問我的數組時,我已經得到了NPE。即使調用.length屬性也會給我一個NPE。任何幫助,將不勝感激。這是我的構造函數和保持失敗的方法。nullpointerexception array.length java
public SkierList() {
Skier[] skiers= new Skier[INITIAL_CAP];
for (int i = 0; i < skiers.length;i++){
skiers[i] = new Skier("");
}
int count = 0;
}
public void add(Skier newSkier) {
if (this.size() < skiers.length)
{
skiers[count] = new Skier(newSkier.getName(), newSkier.getLevel());
count++;
}
}
代碼編譯,但拋出NPE在skiers.length
爲什麼你有滑雪者定義爲陣列,並作爲一個對象?沒有意義 –
你應該將你的數組定義爲一個全局數組,並確保你不要在數組後面命名對象 –
查找變量shadowing,因爲這正是你正在做的。你可能已經有了一個你沒有向我們展示過的滑雪者領域(否則代碼不會編譯),但是你通過在構造函數中重新聲明它來隱藏它。不要這樣做。 –