Когда я пытаюсь вызвать метод BuyItem, так что класс Rebel может купить товар из класса Item, я получаю сообщение:NullPointerException в Java с BlueJ
java.lang.NullPointerException: null
Я чувствую, как I' вы все пытаетесь, кто-нибудь видит, что не так в коде?
Вот мои методы:
public boolean buyItem(Item item) {
int totalWeight = currentWeight() + item.getWeight();
if(totalWeight <= maxCarryingCapacity && money >= item.getPrice()){
money -= item.getPrice();
backpack.put(item.getName(), item);
return true;
} else {
return false;
}
}
и
/**
* @param item
* @return current carrying weight
*/
private int currentWeight() {
int tempWeight = 0;
for(Entry<String, Item> entry: backpack.entrySet()) {
tempWeight += entry.getValue().getWeight();
}
return tempWeight;
}
я был бы очень рад, если бы кто-нибудь из вас может мне помочь, так как им застрял!
Это вторая строка в currentWeight и первой строке в buyItem, которая получает ошибку. В окне терминала показано:
rebel1.buyItem(item1)
Exception occurred.
java.lang.NullPointerException
at Rebel.currentWeight(Rebel.java:190)
at Rebel.buyItem(Rebel.java:56)
Какая строка является исключением? Я предполагаю, что элемент не равен нулю. Или это? – Pete
Прежде всего, добавьте полное исключение stacktrace и полный исходный код, где произошел сбой. Мы не можем помочь вам с частичным кодом. –
Да, нам нужно больше, чтобы продолжить здесь. Здесь много вещей, которые могут быть пустыми. – MikeTheLiar