テキストベースのアドベンチャー ゲーム プロジェクトに取り組んでいます。アイテムが入った部屋と、部屋から部屋への移動が含まれます。Item と呼ばれるクラスと、このより大きな Room と呼ばれるクラスがあります。addNeighbor を除くすべてのメソッドが機能しているようです (おそらく getNeighbor もそうです)。アイテムを含む部屋を作成しましたが、それは問題なく機能し、2 つ目の部屋を作成しましたが、隣人を追加しようとするとクラッシュしてしまいました。私はヌルポインタ例外です。ここで何が間違っていますか?
public class Room
{
private String roomDescription;
private Item item;
private HashMap <String, Room> myNeighbors;
public Room (String pDescription){
roomDescription = pDescription;
item = null;
}
public Room (String pDescription, Item pItem){
roomDescription = pDescription;
item = pItem;
}
public String getRoomDescription(){
return roomDescription;
}
public Item getItem(){
return item;
}
public void addItem (Item i){
item = i;
}
public boolean hasItem(){
if(item != null){
return true;
}else{
return false;
}
}
public void addNeighbor (String pDirection, Room r){
myNeighbors.put(pDirection, r);
}
public Room getNeighbor (String pDirection){
return myNeighbors.get(pDirection);
}
public Item removeItem(){
item = null;
return item;
}
public String getLongDescription(){
String longDescription = "You are at " + roomDescription + "You see " + item;
return longDescription;
}
}