Java Eclipse重构:在collaborator中移动方法
我有以下情况:Java Eclipse重构:在collaborator中移动方法,java,eclipse,refactoring,automated-refactoring,Java,Eclipse,Refactoring,Automated Refactoring,我有以下情况: public class Controller { private ModelRepository repository; public int getModelCount() { int count = 0; List<Model> models = repository.getModels(); for (Model model : models) { if (model.somePredicate()) {
public class Controller {
private ModelRepository repository;
public int getModelCount() {
int count = 0;
List<Model> models = repository.getModels();
for (Model model : models) {
if (model.somePredicate()) {
count++;
}
}
return count;
}
}
这在Eclipse Indigo中可能吗?如果是,如何进行?谢谢 我不认为存在单跳重构,但可以分两步进行 首先,突出显示
getModelCount()
方法的内容,并执行refactor->extract方法
,调用类似于countModels
的新方法
其次,在新的countModels()
方法上执行refactor->move
,选择repository
字段作为目标
这将为您在
ModelRepository
上留下一个名为countModels
的方法,而不是getModelCount
。为了完整性,你可以在这个问题上做一个重构->重命名
,但我还是更喜欢countModels
。谢谢你的回答。似乎refactor->move
操作直接作用于该方法。我的问题是repository
字段的类型是接口,而不是类。这就是Eclipse在移动它时遇到问题的原因。
public class Controller {
private ModelRepository repository;
public int getModelCount() {
repository.getModelCount();
}
}