codecamp

IntelliJ IDEA提取字段

IntelliJ IDEA 提取字段重构声明一个新的字段并用选定的表达式初始化它。原始表达式被替换为字段的用法。

提取字段重构示例

示例-1

提取字段重构前:

public class Class {
    AnotherClass anotherClass;
    public void method() {
        int a = 1;
        ...
        int b = a + anotherClass.intValue();
        int c = b + anotherClass.intValue();
    }
}

提取字段重构后:

public class Class {
    public AnotherClass anotherClass;
    private int number;
    public Class() {
        number = anotherClass.intValue();
    }
    public void method() {
        int a = 1;
        ...
        int b = a + number;
        int c = b + number;
    }
}

示例-2

提取字段重构前:

public class Class {
    AnotherClass anotherClass;

    public void method() {
        int a = anotherClass.innerClass.i;
        int b = anotherClass.innerClass.j;
    }
}

提取重构字段后:

public class Class {
    public AnotherClass anotherClass;
    private AnotherClass.InnerClass aClass = anotherClass.innerClass;
    public void method() {
        int a = aClass.i;
        int b = aClass.j;
    }
}

在原地提取字段

默认情况下,在 IntelliJ IDEA 中启用了就地重构。所以,如果你没有改变这个设置,那么将在编辑器中对引入的字段重构进行就地重构:

  1. 将光标置于变量的表达式或声明中,并用字段替换。
  2. 执行以下任一操作:
    • 按 Ctrl+Alt+F。
    • 在主菜单或上下文菜单上选择:重构|引入字段(Refactor | Introduce Field)。
  3. 如果检测到当前光标位置有多个表达式,表达式列表就会出现。如果是这种情况,请选择所需的表达式。为此,请单击表达式。或者,使用向上和向下箭头键导航到感兴趣的表达式,然后按 Enter 来选择它。
    IntelliJ IDEA
  4. 如果在类中发现了多个表达式,请指定您是否希望只替换所选的事件,或者将所有发现的事件替换为新的常量:
  5. 如有必要,请更改新字段的类型。

    要移至该类型,请按 Shift+Tab。然后,从列表中选择所需的类型,或者在带有读取边框的框中编辑类型。

    现在,要移回字段名称,请按 Tab。

  6. 如果相关,则指定新字段将在何处初始化 - 在当前方法中还是在类构造器中。
  7. 指定字段的名称。从列表中选择名称,或者在带有红色边框的框中键入名称。
    IntelliJ IDEA提取字段
  8. 要完成重构,请按 Tab 或 Enter。

    如果您还没有完成重构并想要取消所做的更改,请按 Escape。

    请注意,有时您可能需要多次按下相应的按键。

    IntelliJ IDEA提取字段

使用对话框提取字段

如果在编辑器设置中清除了 "启用就地重构" 复选框,则将通过 "引入" 字段来执行 "提取字段"。

IntelliJ IDEA提取字段

  1. 在编辑器中,选择要用字段替换的表达式或变量,或者将光标放在这样的表达式或变量声明中。
  2. 在主菜单或选择的上下文菜单中,选择:重构| 提取| 字段(Refactor | Extract | Field),或按 Ctrl+Alt+F。
  3. 在表达式弹出菜单中,选择要替换的表达式。请注意,IntelliJ IDEA 在编辑器中突出显示所选表达式。
  4. 在打开的提取字段对话框中:
    • 从类型列表字段中选择新字段的类型。
    • 指定字段的名称。
    • 在初始化过程中选择必要的选项以指定初始化新字段的位置。
    • 在可见性区域,为新字段选择可见性范围。
    • 如果您想要声明新字段final,请选择“声明 final(Declare final)”复选框。
    • 如果新字段要替换现有变量,则可以选择删除相应的变量声明。要做到这一点,使用“Delete 变量声明”复选框。
    • 要替换所选表达式的所有出现(如果在类中多次找到所选表达式),请选择替换所有出现的复选框。
    • 点击“确定”。
IntelliJ IDEA提取常量
IntelliJ IDEA提取函数参数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }