簡體   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