
# 引入字段
此重构允许您创建一个新的类字段，使用选定的表达式初始化它，并使用创建的类字段的引用替换原始表达式。这与[内联字段](https://support.huaweicloud.com/usermanual-codeartside/codeartside_01_0143.html)重构相反。
#### 执行重构
1. 在代码编辑器中，将光标放置在要提取到类字段的表达式上。
2. 单击右键展示上下文菜单，选择**"重构 \> 引入字段..."**。或者按"Ctrl+Shift+Alt+F"。
3. 如果多个表达式属于重构范围，请在出现的弹窗中选择所需的表达式。如下图所示： 
   图1选择表达式   
   ![](https://support.huaweicloud.com/usermanual-codeartside/zh-cn_image_0000002377584329.png "点击放大")
   
   
4. 在打开的**"引入字段"** 对话框中，提供引入字段的**类型** 和**名称** 、**初始化于** 和**可见性** 选项。
   
   ![](https://support.huaweicloud.com/usermanual-codeartside/public_sys-resources/note_3.0-zh-cn.png)
   当"初始化于"勾选"字段声明"时，可以选择是否将字段"声明为final"字段。
   图2引入字段   
   ![](https://support.huaweicloud.com/usermanual-codeartside/zh-cn_image_0000002377744213.png)
   
   
5. 单击**"重构"**以应用重构。
 
#### 示例
例如，将表达式"Hello"+" "+"World!"提取到在类构造函数中初始化的新**message**私有字段。
**重构前**
"com\\refactoring\\source\\ExtractField.java"文件内容如下：
```
class ExtractField {
    public static void main(String[] args) {
        sayHello();
    }
    private static void sayHello() {
        System.out.println("Hello" + " " + "World!");
    }
}
```
**重构后**
将表达式"Hello"+" "+"World!"提取到新的字段"message"后，"com\\refactoring\\source\\ExtractField.java"文件内容如下：
```
class ExtractField {
    private static String messages;
    public static void main(String[] args) {
        sayHello();
    }
    private static void sayHello() {
        messages = "Hello" + " " + "World!";
        System.out.println(messages);
    }
}
```
