Я новичок в программировании и преподаю себе онлайн-учебник. Я сейчас просто бесполезен и имел LOADS для компиляции ошибок. Однако теперь моя программа компилируется, но я получаю исключение с нулевым указателем, и я просто не могу понять, почему. Я думаю, что я объявил всю переменную, поэтому я не уверен, что я ссылаюсь неправильно.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 при попытке вызвать метод или получить доступ к переменной через то, что является «null». – Jesper
На какой строке вы получаете исключение null-указателя? Может быть, потому, что вы объявляете массив определенного размера, но вы никогда не инициализируете его элементы, то есть 'foodArray [i] == null' для каждого' i'. – CompuChip
Первое, что нужно добавить к вашему сообщению, - это сообщение об ошибке, на какой строке оно работает? Где конкретно нулевой указатель? Это поможет вам найти проблемы/отладить. Я скопировал ваш код в eclipse, и он скомпилировал файл и вернул «0» в конце, кстати. Как только я добавил «burger», это провалилось. – RossC