我可以在这个if语句中返回什么?

时间:2012-04-04 22:33:04

标签: hashmap return-value

我正致力于创建一个基于文本的冒险游戏,该游戏涉及多个房间,房间内的物品,以及在这些房间内来回移动。房间邻居存储在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;
        }
    }
}

2 个答案:

答案 0 :(得分:0)

听起来您可以将方法更改为:

public Room getNeighbor (String pDirection) {
    return myNeighbours.get(pDirection);
}

毕竟,如果找不到密钥,Map.get()将返回null

答案 1 :(得分:0)

使用HashMap.get(pDirection)

public Room getNeighbor (String pDirection){
     return myNeighbors.get(pDirection);
}

请注意,您不需要if语句,因为如果没有get()null已经返回{{1}}。