我正致力于创建一个基于文本的冒险游戏,该游戏涉及多个房间,房间内的物品,以及在这些房间内来回移动。房间邻居存储在HashMap中,我完全没有经验。我有一个名为getNeighbor的方法,它意味着在请求的方向上返回房间的邻居,但我无法弄清楚如何做到这一点。这是代码:
public class Room
{
private String roomDescript;
private Item item;
private HashMap <String, Room> myNeighbors;
public Room (String pDescription){
roomDescript = pDescription;
item = null;
}
public Room (String pDescription, Item pItem){
roomDescript = pDescription;
item = pItem;
}
public String setRoomDescript(){
return this.roomDescript;
}
public String getRoomDescript(){
return this.roomDescript;
}
public Item setItem(){
return this.item;
}
public Item getItem(){
return this.item;
}
public void addItem (Item i){
i = item;
}
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){
if(myNeighbors.containsKey(pDirection)){
return ;
}else{
return null;
}
}
}
答案 0 :(得分:0)
听起来您可以将方法更改为:
public Room getNeighbor (String pDirection) {
return myNeighbours.get(pDirection);
}
毕竟,如果找不到密钥,Map.get()
将返回null
。
答案 1 :(得分:0)
public Room getNeighbor (String pDirection){
return myNeighbors.get(pDirection);
}
请注意,您不需要if语句,因为如果没有get()
,null
已经返回{{1}}。