JSRUN 用代码说话

提取常量

编辑教程

提取常量

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

提取常量重构实例

提取常量重构之前:

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 的提取常量重构将在编辑器中就地执行。

将光标置于变量的表达式或声明中,将其替换为常量。

执行以下任一操作:

按 Ctrl+Alt+C。
在主菜单或上下文菜单上选择:重构丨 提取丨 常量(Refactor 丨 Extract 丨 Constant)。

如果检测到当前光标位置有多个表达式,则会显示 "表达式" 列表。如果是这种情况,请选择所需的表达式。为此,请单击表达式。或者,使用向上和向下箭头键导航到感兴趣的表达式,然后按 Enter 来选择它。

IntelliJ IDEA提取常量

如果在类中发现了多个表达式,请指定是只替换选定的事件,还是只用新的常量替代所找到的所有实例。

如果您想要在其他类中定义常量,请选中 "移动到其他类" 复选框。

如有必要,请更改新常量的类型。

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

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

指定常量的名称。从列表中选择名称,或在带有红色边框的框中键入名称。

IntelliJ IDEA

要完成重构,请按 Tab 或 Enter。

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

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

使用对话框提取常量

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

IntelliJ IDEA

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

IntelliJ IDEA

如果您正在使用 Java 代码,请确保在编辑器设置中启用适当的重构选项已关闭。(默认情况下,执行 Java 的提取常量重构是就地执行的)。
在编辑器中,选择要用常量替换的表达式或变量,或者将光标放在这样的表达式或变量声明中。
在主菜单或上下文菜单中,选择:重构丨 提取常量(Refactor 丨 Extract Constant),或按 Ctrl+Alt+C。
在表达式弹出菜单中,选择要替换的表达式。请注意,IntelliJ IDEA 在编辑器中突出显示所选表达式。
在“提取常数”对话框中打开:
指定新常数的名称。
选择常量将被引入的类。如果您选择这里的enum类,请使用引入 enum 常量选项来指定常量是enum常数还是常用字段。
在可见性区域,选择新常量的可见性范围。
如果新常量将替换现有变量,则可以选择删除相应的变量声明。要做到这一点,使用“Delete 变量声明”复选框。
要替换所选表达式的所有出现(如果在类中多次找到所选表达式),请选择“替换所有出现的”复选框。
在配置使用注释的项目中,您可以将 String 类型的常量注释为@NonNls以防止在可能的本地化过程中更改它。为此,请选择注释字段为 @nonnls 的选项。
点击“确定”。
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟