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。