Ion*_*tan 3 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()) {
count++;
}
}
return count;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想通过使用一些自动Eclipse重构来移动getModelCount方法ModelRepository,以便我在控制器中结束这个:
public class Controller {
private ModelRepository repository;
public int getModelCount() {
repository.getModelCount();
}
}
Run Code Online (Sandbox Code Playgroud)
Eclipse Indigo有可能吗?如果有,怎么样?谢谢!
我不认为有单跳重构,但你可以做到两个.
首先,突出显示getModelCount()方法的内容并执行a refactor->extract method,调用新方法countModels.
其次,refactor->move在新countModels()方法上执行,选择repository字段作为目标.
这将为您留下一个被ModelRepository调用的方法,countModels而不是getModelCount.为了完整起见,你可以做到refactor->rename这一点,但countModels无论如何我更喜欢.