IntelliJ IDEA 可以讓你提取一個函數類型變量。
這個重構為 Java 1.8 及更高版本創建了一個函數表達式,并為舊版本的 Java 創建了一個匿名類。
提取功能變量重構前:
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));
}
}
提取函數變量
⒈ 在本例中選擇代碼片段,println 方法的一個參數。
⒉ 在主菜單中選擇:重構| 提取| 函數變量。IntelliJ IDEA 打開 "提取函數變量" 對話框。
⒊ 當選擇的代碼依賴于實例字段時 (如示例中所示),將會出現 "將字段作為參數傳遞" 復選框,并且您可以在字段的位置中傳遞一個形參。
但是,例如,如果您選擇的代碼片段取決于任何本地變量或參數
相應的條目將出現在列表中。
當您取消選擇對話框中的某個參數時,將使用相應的本地。
配置您的選項,然后單擊“確定”。
⒋ 從彈出窗口中選擇適用的功能界面。
⒌ 如果你想,如果你不想使用列表中建議的名字,改變解壓變量的名字。
因此,IntelliJ IDEA 會創建一個您可以繼續使用的 lambda。