更新//
我注意到的IntelliJ有一個 「生成」 生成委託方法的選擇。創建一個新的類:
public class MyDecoratorClass {
private MyInterfaceWithManyMethods myInterface;
}
然後標記MyInterface的,進入菜單>代碼>委託方法,選擇要包裝的所有方法,就是這樣。
//結束時更新
你可以嘗試 「重構」 的 - > 「替換代表團繼承」 重構。它應該能夠做到這一點,就像這樣。我稱之爲「帶Alt + Enter的代碼」
轉到要爲其生成裝飾器的界面。按下Alt + Enter,選擇「Implement Interface」,給你的Decorator命名爲「MyDecorator」。這給你
public class MyDecorator implements MyInterfaceWithManyMethods {
public void method1() {
}
public void method2() {
}
public void method3() {
}
}
在新類,選擇類名,然後在「重構」 - >「替換代表團繼承」,選擇你的界面,勾選所有方法的名稱,然後按ENTER鍵。您將得到:
public class MyDecorator {
private final MyObject object = new MyObject();
public void method1() {
object.method1();
}
public void method2() {
object.method2();
}
public void method3() {
object.method3();
}
private class MyObject implements MyInterfaceWithManyMethods {
public void method1() {
}
public void method2() {
}
public void method3() {
}
}
}
手動刪除內部類和對象初始值設定項。你得到:
public class MyDecorator {
public void method1() {
object.method1();
}
public void method2() {
object.method2();
}
public void method3() {
object.method3();
}
}
按Alt + Enter鍵即現在標記爲紅色的「對象」,選擇「創建域」中,選擇MyInterfaceWithManyMethods。
public class MyDecorator {
private MyInterfaceWithManyMethods object;
public void method1() {
object.method1();
}
public void method2() {
object.method2();
}
public void method3() {
object.method3();
}
}
選擇對象變量,按Alt + Enter鍵,選擇 「添加構造函數的參數」:
public class MyDecorator {
private MyInterfaceWithManyMethods object;
public MyDecorator(MyInterfaceWithManyMethods object) {
this.object = object;
}
public void method1() {
object.method1();
}
public void method2() {
object.method2();
}
public void method3() {
object.method3();
}
}
你看,這一切都與Alt + Enter鍵幾筆完成。讀取像很多工作,但可以在20秒內完成。如果您只有2或3種方法,則使用實時模板可能會更快,但是如果您有許多複雜簽名方法,則使用此方法可以在大約20秒內獲得工作結果。 Alt + Enter鍵只是岩石:d
我不知道它是如何工作的,當你想從頭創建一個班級 – 2010-12-01 17:40:44
我爲你添加了完整的描述。 – 2010-12-01 18:20:17