gpt4 book ai didi

java - 不确定为什么我会收到此空指针异常错误

转载 作者:行者123 更新时间:2023-11-29 08:07:40 25 4
gpt4 key购买 nike

我正在从事一个基于文本的冒险游戏项目。它涉及装有元素的房间,以及从一个房间到另一个房间的导航。有一个名为 Item 的类,这个更大的类称为 Room。我的所有方法似乎都有效,除了 addNeighbor(然后可能还有 getNeighbor。)我创建了一个带有项目的房间并且工作得很好,我创建了第二个房间,但是当我尝试添加一个邻居时它崩溃了并给了我一个空指针异常。我在这里做错了什么?

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;
}
}

最佳答案

你从未初始化过myNeighbors ;它只是指向任何地方的引用。

考虑 private HashMap <String, Room> myNeighbors = new HashMap<String,Room>(); .

关于java - 不确定为什么我会收到此空指针异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com