
# 引入函数式变量
此重构允许将选定的表达式转换为新的函数类型变量或匿名类。
#### 执行重构
1. 在代码编辑器中，选择要转换为函数变量的表达式。
2. 单击右键展示上下文菜单，选择**"重构 \> 引入函数式变量..."**。
3. 在打开的引入函数式变量对话框中，选择**"将字段作为参数传递"** ，以使字段作为参数传递到创建的函数表达式。如下图所示：
   
   图1引入函数式变量   
   ![](https://support.huaweicloud.com/usermanual-codeartside/zh-cn_image_0000002377744253.png "点击放大")
   
   
4. 单击**"重构"**以应用重构。
 
#### 示例
例如，将表达式**"Data"+ data.toString()**提取到函数变量中。
**重构前**
"com\\refactoring\\source\\PrintAction.java"文件内容如下：
```
import java.util.List;
class PrintAction implements Runnable {
    private List<String> data;
    public PrintAction(List<String> data) {
        this.data = data;
    }
    @Override
    public void run() {
        System.out.println("Data" + data.toString());
    }
}
```
**重构后**
"com\\refactoring\\source\\PrintAction.java"文件内容如下：
```
import java.util.List;
import java.util.function.Function;
class PrintAction implements Runnable {
    private List<String> data;
    public PrintAction(List<String> data) {
        this.data = data;
    }
    @Override
    public void run() {
        Function<List<String>, String> listStringFunction = data -> "Data" + data.toString();
        System.out.println(listStringFunction.apply(data));
    }
}
```
