2012-10-19 54 views
0

我正在處理現有項目。爲了添加一些功能,我不得不在一個接口中添加一個方法,因爲方法被添加到接口中,必須由所有實現它的類來實現。我搜索了一個模塊,發現了10個實現這個接口的類。但是現在我會在其他模塊和整個項目中搜索相同的內容。所以這有兩個問題:將方法添加到多個文件的現有接口含義

搜索實現該特定接口的類。

  • 我不能在eclipse中導入整個項目,因爲代碼庫很大。
  • 尋找實現接口的類,可以這樣寫:Class A implements ChangedInterfaceClass A implements B, ChangedInterface,所以即使使用grep進行搜索也很困難。

我想要得到您的建議。

編輯:我無法避免在該接口中添加方法。代碼庫是20 GB,在eclipse中導入看起來很難。

+0

真的 - 你不能導入整個項目。我在Eclipse中有過大量的龐大工程,可以搜索它們。它花了一段時間,但它的工作。 – dngfng

+0

保持簡單。重建並看看你的錯誤,或grep的接口名稱(mayby添加一個正則表達式來包含implements,然後重新編譯,並且我已經在eclipse中使用了android的java源代碼,你的項目一定是大的 –

+0

也爲什麼不用don'如果你實現了一個abstact類來實現這個inferace,那麼女巫又有了默認的方法實現,你需要做的就是從abstact類擴展,而不是從接口A實現。 – dngfng

回答

1

爲什麼要搜索?只需編譯並查看錯誤。如果您尚未自動構建過程,請修復此問題!另外,如果不是所有類都需要實現此方法,請嘗試擴展接口而不是添加方法。

+0

構建整個項目可能會失敗由於其他代碼的改變,它不一定會浪費大量時間來構建一個20gig項目 – peeyush

+1

那麼,其他的選項已經被討論過了,修復你的構建過程或者在你的項目構建時去散步。防止編譯器報告未實現的方法 –

-1
public interface InterfaceA { 
    ... 
    ... 
    public void newMethod(); 
} 

public abstract class AbstractClassA implements InterfaceA { 
    public void newMethod() { 
     //do Stuff 
    } 
} 

,然後更改所有implements IntefaceAextends AbstractClassA,這樣所有的繼承類將有newMethod的默認實現。

此外,萬一這些方法不會有所不同,您將避免重複的代碼。

+0

與查找哪個類實現InterfaceA一樣,它也會產生問題m從工具移動到範圍(不能擴展多個類)。 – peeyush