我有许多类的集合,需要将它们重构为新的类。我将Java与Eclipse或Netbeans结合使用。当前,我使用委托List 创建新的类FooList,然后关注代码无法编译的所有地方。有没有一种方法可以做到而又不破坏代码(最好是一次操作)?
编辑我有以下类型的构造:
public static List<Foo> Bar.createFooList(String s)
并且
List<Foo>
在其他地方经常使用,这作为业务对象FooList
是有意义的。我通过以下方式手动完成此操作:public class FooList {
private List<Foo> fooList;
public FooList(String s) {
createList(s);
}
private void createList(String s) {//...}
public int size() {return fooList.size();}
}
FooList也将具有List以外的方法。例如现在:
Bar.normalize(List<Foo> fooList);
然后将成为
fooList.normalize();
在另一个函数需要List方法的地方,我使用Eclipse中的Source | Generate Delegate Methods选项在FooList中生成这些方法(与上面的size()一样)。
我可以看到实现List 的吸引力@JonSkeet,但是看不到如何自动更改所有代码。
最佳答案
我只是在IntelliJ中进行了尝试,却没有发现任何可以直接重构的东西。但这可以做到:
像这样创建您的FooList:
公共抽象类BarList实现List {}
进行全局搜索,并将“ List<Foo>
”替换为您的“ FooList
”。
现在您可以参加比赛了。
现在,您可以使用可用的重构,例如(IntelliJ的“用工厂方法替换构造函数”等)。
那样有用吗?