IntelliJ IDEA 可以讓你提取一個(gè)函數(shù)類型變量。
這個(gè)重構(gòu)為 Java 1.8 及更高版本創(chuàng)建了一個(gè)函數(shù)表達(dá)式,并為舊版本的 Java 創(chuàng)建了一個(gè)匿名類。
提取功能變量重構(gòu)前:
import java.util.List;
public class PrintAction implements Runnable {
private List data;
public PrintAction(List data) {
this.data = data;
}
public void run() {
System.out.println("Data: " + data.toString());
}
}
提取功能變量重構(gòu)后:
import java.util.List;
import java.util.function.Function;
public class PrintAction implements Runnable {
private List data;
public PrintAction(List data) {
this.data = data;
}
public void run() {
Function, String> presenter = (p) -> "Data: " + p.toString();
System.out.println(presenter.apply(data));
}
}
提取函數(shù)變量
⒈ 在本例中選擇代碼片段,println 方法的一個(gè)參數(shù)。
⒉ 在主菜單中選擇:重構(gòu)| 提取| 函數(shù)變量。IntelliJ IDEA 打開 "提取函數(shù)變量" 對(duì)話框。
⒊ 當(dāng)選擇的代碼依賴于實(shí)例字段時(shí) (如示例中所示),將會(huì)出現(xiàn) "將字段作為參數(shù)傳遞" 復(fù)選框,并且您可以在字段的位置中傳遞一個(gè)形參。
但是,例如,如果您選擇的代碼片段取決于任何本地變量或參數(shù)
相應(yīng)的條目將出現(xiàn)在列表中。
當(dāng)您取消選擇對(duì)話框中的某個(gè)參數(shù)時(shí),將使用相應(yīng)的本地。
配置您的選項(xiàng),然后單擊“確定”。
⒋ 從彈出窗口中選擇適用的功能界面。
⒌ 如果你想,如果你不想使用列表中建議的名字,改變解壓變量的名字。
因此,IntelliJ IDEA 會(huì)創(chuàng)建一個(gè)您可以繼續(xù)使用的 lambda。