IntelliJ IDEA提取常量

提取常量重构是提取字段重构的一个特例,目的是提供一种快速、方便的方法来创建最终的静态字段。

提取常量重构实例

提取常量重构之前:

public class Class {
     public void method() {
          String string = "string";
          ArrayList list = new ArrayList();
          list.add(string);
          anotherMethod(string);
          ...
          }
    }

提取常量重构之后:

public class Class {
        @NonNls
        private static final String STRING ="string";
        public void method() {
          ArrayList list = new ArrayList();
          list.add(STRING);
          anotherMethod(STRING);
          ...
        }
}

提取Java常量

该 IntelliJ IDEA 默认启用就地重构。所以,如果你没有改变这个设置,则 Java 的提取常量重构将在编辑器中就地执行。

  1. 将光标置于变量的表达式或声明中,将其替换为常量。
  2. 执行以下任一操作:
    • 按 Ctrl+Alt+C。
    • 在主菜单或上下文菜单上选择:重构| 提取| 常量(Refactor | Extract | Constant)。
  3. 如果检测到当前光标位置有多个表达式,则会显示 "表达式" 列表。如果是这种情况,请选择所需的表达式。为此,请单击表达式。或者,使用向上和向下箭头键导航到感兴趣的表达式,然后按 Enter 来选择它。
    IntelliJ IDEA提取常量
  4. 如果在类中发现了多个表达式,请指定是只替换选定的事件,还是只用新的常量替代所找到的所有实例。
  5. 如果您想要在其他类中定义常量,请选中 "移动到其他类" 复选框。
  6. 如有必要,请更改新常量的类型。

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

    现在,要返回到常数名称,请按 Tab。

  7. 指定常量的名称。从列表中选择名称,或在带有红色边框的框中键入名称。
    IntelliJ IDEA
  8. 要完成重构,请按 Tab 或 Enter。

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

  9. 如果已选择将常量定义移动到其他类,请在 "移动成员" 对话框中指定关联的设置。

使用对话框提取常量

如果在编辑器设置中清除了 "启用就地重构" 复选框,则通过 "提取常量" 对话框来执行 "提取常量"。

IntelliJ IDEA

您也可以从意向行为下拉菜单中调用重构:

IntelliJ IDEA

  1. 如果您正在使用 Java 代码,请确保在编辑器设置中启用适当的重构选项已关闭。(默认情况下,执行 Java 的提取常量重构是就地执行的)。
  2. 在编辑器中,选择要用常量替换的表达式或变量,或者将光标放在这样的表达式或变量声明中。
  3. 在主菜单或上下文菜单中,选择:重构| 提取常量(Refactor | Extract Constant),或按 Ctrl+Alt+C。
  4. 在表达式弹出菜单中,选择要替换的表达式。请注意,IntelliJ IDEA 在编辑器中突出显示所选表达式。
  5. 在“提取常数”对话框中打开:
    1. 指定新常数的名称。
    2. 选择常量将被引入的类。如果您选择这里的enum类,请使用引入 enum 常量选项来指定常量是enum常数还是常用字段。
    3. 在可见性区域,选择新常量的可见性范围。
    4. 如果新常量将替换现有变量,则可以选择删除相应的变量声明。要做到这一点,使用“Delete 变量声明”复选框。
    5. 要替换所选表达式的所有出现(如果在类中多次找到所选表达式),请选择“替换所有出现的”复选框。
    6. 在配置使用注释的项目中,您可以将 String 类型的常量注释为@NonNls以防止在可能的本地化过程中更改它。为此,请选择注释字段为 @nonnls 的选项。
    7. 点击“确定”。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部