2013-03-06 43 views
0

我有問題,我定義了一個HashMap作爲變量,我應該使用一個類來獲得更好的可擴展性。如何使用eclipse提取變量並將其轉換爲類?

我想日食的

HashMap<String, Integer> result 

變量重構爲我的結果類的類型,我可以再擴展。考慮到我的項目中使用了HashMap,我怎麼能做到這一點?

我想要的結果不是HashMap,而是一個對象。

public class result { 
    HashMap<String, Integer> res; 
    public void setres(String res, int res) { 

    } 
} 
+1

你怎麼想它看起來像如果你正在使用返回一個'HashMap'的方法? – 2013-03-06 16:34:24

+1

您可以讓結果類擴展HashMap(或Map)以保持功能的一致性。 – tdedecko 2013-03-06 16:44:52

+1

考慮在代碼的左側使用'Map' – 2013-03-06 16:47:16

回答

0

剛開始更換。使用自己的HashMap字段創建您的類,並在您的代碼中的某處用YourClass替換HashMap。現在你會看到一些紅色的下劃線,你的類沒有實現(HashMap)方法。使用QuickFix創建缺失的方法,然後(短期)直接將該呼叫委託給該字段。你會看到一些其他的下劃線,比如說,你將YourClass傳遞給一個需要HashMap的方法。 QuickFix這樣的方法現在期望一個YourClass,並修復你在那裏看到的錯誤。重複,直到完成。

0

雖然Carl Manaster的回答是絕對正確的,但我會推薦一個不同的方法,擴展HashMap本身。所以你只需要重寫構造函數並重寫所有的HashMap方法,並且可以添加任何你需要的其他字段或自定義方法。

首先你要一類是這樣的:

class ResultHashMap extends HashMap<String, Integer> { 
//Add all your customization here   
} 

然後你更換的所有ocurrences:

HashMap<String, Integer> reslut = new HashMap<String, Integer>(); 

要:

ResultHashMap result = new ResultHashMap(); 
相關問題