IntelliJ IDEA 可以讓你提取一個函數(shù)類型變量。
這個重構為 Java 1.8 及更高版本創(chuàng)建了一個函數(shù)表達式,并為舊版本的 Java 創(chuàng)建了一個匿名類。
提取功能變量重構前:
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());
}
}
提取功能變量重構后:
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 方法的一個參數(shù)。

⒉ 在主菜單中選擇:重構| 提取| 函數(shù)變量。IntelliJ IDEA 打開 "提取函數(shù)變量" 對話框。

⒊ 當選擇的代碼依賴于實例字段時 (如示例中所示),將會出現(xiàn) "將字段作為參數(shù)傳遞" 復選框,并且您可以在字段的位置中傳遞一個形參。

但是,例如,如果您選擇的代碼片段取決于任何本地變量或參數(shù)

相應的條目將出現(xiàn)在列表中。

當您取消選擇對話框中的某個參數(shù)時,將使用相應的本地。

配置您的選項,然后單擊“確定”。
⒋ 從彈出窗口中選擇適用的功能界面。

⒌ 如果你想,如果你不想使用列表中建議的名字,改變解壓變量的名字。

因此,IntelliJ IDEA 會創(chuàng)建一個您可以繼續(xù)使用的 lambda。
