繁体   English   中英

Eclipse支持重构火车残骸

[英]Eclipse support for refactoring train wrecks

eclipse可以做这个重构吗?

假设我有一个有List的类:

class DomainObject {
    private List list;
    public List getList() { return list; }
}

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

domainObject.getList().get(23);

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

domainObject.get(23);

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

试试这个:

  1. DomainObject正确实现List (使用list作为委托)
  2. getList()返回this
  3. Refactor-Inline getList()
  4. (可选)再次删除"implements List" ,保留get()方法

另一个(更简单)选项:

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

我想你想要的是Refactor - >介绍间接...... 我不确定如何使用它,我认为你必须在List.get上调用它,指定你想在DomainObject创建方法...

我试过这里,但eclipse需要花费大量时间来计算它(我想要查找对该方法的所有引用)

编辑 :我发现了一篇关于这个主题的文章 ,这让我觉得这可能不是你想要的。 但是,如果Eclipse足够聪明,我猜不会将该方法声明为静态。 它还没有完成,但我发现错误187227介绍间接是非常慢的 ,这是因为它适用的方法名称是非常常见的,所以我想它在List.get的情况下是不可用的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM