2014-09-21 47 views
-3

的Java搜索對象我有一個類項目 而創建多個對象(樹,電視,書籍,等等) 在類遊戲通過串

// Create the items 
    tree   = new Item("tree", "I big green tree", 60); 
    coat   = new Item("coat", "I white coat", 5); 
    paper   = new Item("paper", "a role of wc paper", 1); 

現在玩家(也playerclass)必須保存一些項目。 玩家可以通過鍵入以下內容來獲取此物品:get book,其中book是String secondWord。

現在我需要一個函數,可以通過一個字符串得到一個對象 。

例如;

玩家進入取書。

player1.takeItem(Item secondWord); 

,並在級的球員,我有這個功能takeItem()

/** 
* Method to take item 
* and add them to the ArrayList carriedItems 
* @param secondCommandWord is the second word command 
* Ex: take book -> book is then command 
*/ 
public void takeItem(Item secondCommandWord) 
{ 
    // Add new item to carried list 
    carriedItems.add(secondCommandWord); 
} 

但是,這是行不通的。希望你能幫助我

+0

請給我們看一些代碼。 – NPE 2014-09-21 19:49:58

回答

1

我假設你Item類看起來是這樣的:

public class Item { 

    private String kind; 
    private String description; 
    private int price; 

    public Item(String kind, String description, int price) { 
     this.kind = kind; 
     this.description = description; 
     this.price = price; 
    } 

    ... 
} 

然後,在Item類,你可以簡單地返回樣的項目作爲一個字符串的方法。

public String getKind() { 
    return this.kind; 
} 

我想你有一個地方的所有項目的列表。然後,您可以使用getItem(String)輕鬆地從列表中獲取項目,該項目返回所需的項目。

private List<Item> items = new ArrayList<Item>() {{ 
    add(new Item("tree", "I big green tree", 60)); 
    add(new Item("coat", "I white coat", 5)); 
    add(new Item("paper", "a role of wc paper", 1)); 
}}; 

public Item getItem(String itemName) { 
    for (Item item : this.items) { 
     if (item.getKind().equals(itemName)) { 
      return item; 
     } 
    } 
    return null; 
}