クラス Rebel がクラス Item からアイテムを購入できるように、メソッド BuyItem を呼び出そうとすると、次のメッセージが表示されます。
java.lang.NullPointerException: null
私はすべてを試してきたように感じます。コードの何が問題なのか誰かわかりますか?
ここに私の方法があります:
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 の 2 行目と buyItem の 1 行目です。ターミナル ウィンドウには次のように表示されます。
rebel1.buyItem(item1)
Exception occurred.
java.lang.NullPointerException
at Rebel.currentWeight(Rebel.java:190)
at Rebel.buyItem(Rebel.java:56)