IntelliJ IDEA使用Push ITD In重構(gòu)

2018-03-31 10:43 更新

使用Push ITD In重構(gòu)

此功能僅在 Ultimate 版本中得到支持。

對(duì)于 aspect 來說,IntelliJ IDEA 支持大部分基本的重構(gòu),例如移動(dòng)(Move)和重命名(Rename)。除此之外,您還可以為類型間聲明執(zhí)行 Push ITD In 重構(gòu)。

在 Push ITD In 重構(gòu)中,您可以將字段和方法的定義從各個(gè) aspect 移至相應(yīng)的類。(重構(gòu)名稱中的 ITD 代表 Inter-Type 聲明。)

可以針對(duì)單個(gè)字段或方法、整個(gè) aspect 或包中的所有 aspect 執(zhí)行重構(gòu)。

如果執(zhí)行重構(gòu)時(shí)某些 aspect 變?yōu)椤癳mpty”(當(dāng)相關(guān)的 aspect 只包含類型聲明時(shí),可能會(huì)發(fā)生這種情況),則你可以選擇自動(dòng)刪除所有這些 aspect。

使用示例

下表顯示了 Push ITD In 重構(gòu)的示例。 

在第一個(gè)例子中,closed 字段的聲明從 MyAspect aspect 移動(dòng)到類 Account。

在第二個(gè)示例中,該方法 close() 也從 MyAspect 移至 Account。

注意,如果為整個(gè) MyAspect aspect 執(zhí)行了重構(gòu),則這兩種聲明(即,聲明 closed 和 close())可以被移動(dòng)到類 Account。

示例一

操作前:

aspect myAspect {
    boolean Account.closed = false;
    void Account.close() {
        closed = true;
    }
    // some code here
}
class Account {
// some code here

}

操作后:

aspect myAspect {

    void Account.close() {
        closed = true;
    }
    // some code here
}
class Account {
    // some code here
    boolean closed = false;
}

示例二

操作前:

aspect MyAspect {
    void Account.close() {
        closed = true;
    }
    // some code here
}
class Account {
    // some code here
    boolean closed = false;



}

操作后:

aspect MyAspect {



    // some code here
}
class Account {
    // some code here
    boolean closed = false;
    void close() {
        closed = true;
    }
}

執(zhí)行Push ITD重構(gòu)

  1. 取決于重構(gòu)的預(yù)期范圍:
    • 如果要為單個(gè)字段或方法執(zhí)行重構(gòu),請(qǐng)?jiān)诰庉嬈髦写蜷_感興趣的 aspect,并將光標(biāo)置于字段或方法的聲明中。
    • 要對(duì)整個(gè) aspect 執(zhí)行重構(gòu),請(qǐng)?jiān)凇绊?xiàng)目(Project)”工具窗口中選擇感興趣的 aspect。或者,在編輯器中打開該 aspect,并將光標(biāo)置于各個(gè)類型間聲明之外的某個(gè)位置(例如在 aspect 的聲明內(nèi))。
    • 要對(duì)包中的所有 aspect 執(zhí)行重構(gòu),請(qǐng)?jiān)凇绊?xiàng)目(Project)”工具窗口中選擇包。
  2. 在主菜單或上下文菜單中選擇:重構(gòu)| 推入 ITDs In(Refactor | Push ITDs In)。
  3. 在打開的 Push Inter-Type 聲明對(duì)話框中:
    1. 選擇或清除“刪除空白aspects(Delete empty aspects)”復(fù)選框。
    2. 單擊“重構(gòu)(Refactor)”立即執(zhí)行重構(gòu),或者“預(yù)覽(Preview)”以在實(shí)際執(zhí)行重構(gòu)之前研究預(yù)期的更改。
  4. 如果在上一步中單擊了“預(yù)覽(Preview)”,則會(huì)打開“查找(Find)”工具窗口,其中顯示將要受到影響的類型間聲明。如果對(duì)預(yù)期結(jié)果滿意,請(qǐng)點(diǎn)擊“進(jìn)行重構(gòu)(Do Refactor)”。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)