如何使用eclipse提取变量并将其转换为类?

时间:2013-03-06 16:27:46

标签: java eclipse refactoring

我遇到的问题是我将HashMap定义为一个变量,我应该使用一个类来获得更好的可扩展性。

我希望eclipse能够重构

HashMap<String, Integer> result

变量到我的结果类类型,然后我可以扩展。考虑到在整个项目中使用HashMap,我怎样才能做到这一点?

我希望结果不是HashMap,而是对象。

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

     }
}

2 个答案:

答案 0 :(得分:0)

刚开始更换。使用自己的HashMap字段创建您的类,并在代码中的某处用YourClass替换HashMap。现在你会看到一些红色下划线,你的类没有实现(HashMap)方法。使用QuickFix创建缺少的方法,然后(短期)将呼叫直接委托给该字段。您会看到其他一些下划线,例如,您将YourClass传递给需要HashMap的方法。 QuickFix,因此该方法现在需要一个YourClass,并修复你在那里看到的错误。重复直到完成。

答案 1 :(得分:0)

虽然Carl Manaster的回答是绝对正确的,但我会推荐一种不同的方法,扩展HashMap本身。因此,您只需要重写构造函数并覆盖所有HashMap方法,并且可以添加您需要的任何其他字段或自定义方法。

首先你创建一个这样的类:

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

然后你替换所有的:

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

要:

ResultHashMap result = new ResultHashMap();