我是編程的新手,並且正在教我自己的在線教程。我現在很無用,並且有編譯錯誤的負擔。然而,現在我的程序編譯,但我得到一個空指針異常,我只是不能解決原因。我想我已經聲明瞭所有的變量,所以我不確定我所引用的錯誤。在我的(非常基本的)代碼中的java.lang.NullPointerException
這裏(再次道歉,因爲它是如此基本的)是我的代碼:
public class CalorieCount {
public static int calCount(String[] food) {
//sets calorie count to 0
int total = 0;
//cycles through parameters passed on command line
//for each item compares item with known calorie amount
for(int i = 0; i<food.length; i++) {
String foodItem = food[i];
int foodItemCal = 0;
if (foodItem.equals("burger")) {
foodItemCal += 310;
} else if (foodItem.equals("bigmac")) {
foodItemCal += 560;
} else if (foodItem.equals("fries")) {
foodItemCal += 250;
} else if (foodItem.equals("mcnuggets")) {
foodItemCal += 170;
} else {
foodItemCal += 0;
}
//adds item calories to total
total += foodItemCal;
}
return total;
}
public static void main(String[] args) {
String[] foodArray = new String[args.length];
int calories = calCount(foodArray);
System.out.println(calories);
}
}
如果我在命令行中輸入java CalorieCount漢堡然後我得到一個空指針異常。
請顯示堆棧跟蹤。它會準確告訴你在哪一行發生異常。看看那條線,找出那裏可能是'空'的。當你嘗試調用一個方法或通過'null'來訪問變量時,你會得到一個NPE。 – Jesper
你會在哪一行得到空指針異常?難道是因爲你正在聲明一個特定大小的數組,但是你永遠不會初始化它的元素,例如'foodArray [i] == null'爲每個'i'。 – CompuChip
要添加到您的文章的第一件事是錯誤消息,它是什麼線?空指針特別在哪裏?這將幫助您找到問題/調試。我將你的代碼複製到eclipse中,它編譯得很好,並在最後返回「0」。一旦我添加了「漢堡」就失敗了。 – RossC