2011-07-18 28 views

回答

6

我不這麼認爲。這不是那麼簡單的任務。你的例子很簡單,但考慮一下:

class A { 
    private int a; 
    public void foo(){ 
     System.out.println(a); 
    } 
} 

class AA extends A { 
    private int a; //its not the same 'a'!! 
    public void foo(){ //ok, we override, so we can 'overwrite', but... 
     super.foo(); //... what with this? 
     System.out.println(a); 
    } 
} 

正如你所看到的,它很難自動化。如果這個層次結構中的某個類擴展了一些lib類,那麼你沒有源代碼呢​​? 所以,合併非常困難,而且非常糟糕,這就是爲什麼我不認爲有人寫這樣的工具。

+0

我剛找到Refactor-> Push Down/Push Up。 – unR

+5

**重構 - >上推/下推** 上下移動字段和方法的類型層次結構。它也更新發生。但正如Adam Jurczyk所說,這很可能會導致一些錯誤。特別是當類型相互引用或具有indentical字段/方法(equals(),hashCode(),serialVersionUID) – unR

+1

對不起,我的不好。對於簡單的情況,這是您需要的工具。對於像我這樣的情況,它簡單地合併代碼並警告重疊。嘿,你活着學習:D –

相關問題