Eclipse支持重构火车残骸

bla*_*ank 3 java eclipse refactoring

eclipse可以做这个重构吗?

假设我有一个有List的类:

class DomainObject {
    private List list;
    public List getList() { return list; }
}
Run Code Online (Sandbox Code Playgroud)

然后一些使用该类的代码需要这样做:

domainObject.getList().get(23);
Run Code Online (Sandbox Code Playgroud)

我想重构一下(并让所有其他引用做同样的事情):

domainObject.get(23);
Run Code Online (Sandbox Code Playgroud)

我尝试了一些选项,但似乎无法找到一种方法(手动除外)

Luk*_*der 7

试试这个:

  1. 让我们DomainObject正确实现List(list作为代表使用)
  2. 让我们getList()回来this
  3. 重构内联 getList()
  4. (可选)"implements List"再次删除保留get()方法

另一个(更简单)选项:

  1. 重构 - 重命名getList()getMyListWithAUniqueNameAcrossTheProject()(让Eclipse更新所有引用)
  2. 搜索替换"getMyListWithAUniqueNameAcrossTheProject()."""
  3. 添加并实施 DomainObject.get(int)