更新时间:2025-08-19 GMT+08:00
分享

提取方法对象

此重构允许将任意代码片段单独移动到新类的方法中,以便进一步将该方法分解为同一对象上的其他方法。

执行重构

  1. 在代码编辑器中,选择要提取到包装类的新方法的代码片段。
  2. 单击右键展示上下文菜单,选择重构 > 提取方法对象...
  3. 在打开的“提取方法对象”对话框中,提供重构选项。

    • “创建内部类”:选择创建新的内部类。所有局部变量都转换为此类的字段。提供类的名称及其可见性修饰符。
    • “创建匿名类”:选择创建新对象并提供需要创建方法的名称。
    • “参数”区域中,选择变量作为方法参数。

      如下图所示:

      图1 提取方法对象

  4. 单击“重构”以应用重构。

示例

例如,将包含 println语句的for循环提取到Printer包装类的新方法中。

重构前

“com\refactoring\source\ExtractMethodObject.java”文件内容如下:

class ExtractMethodObject {
   public static void main(String[] args) {
      String text = "Hello World!";
      int n = 5;

      for (int i = 0; i < n; i++) {
         System.out.println(text);
      }
   }
}

重构后

“com\refactoring\source\ExtractMethodObject.java”文件内容如下:

class ExtractMethodObject {
   public static void main(String[] args) {
      String text = "Hello World!";
      int n = 5;

      new Printer(text, n).invoke();
   }

   private static class Printer {
      private String text;
      private int n;

      public Printer(String text, int n) {
         this.text = text;
         this.n = n;
      }

      public void invoke() {
         for (int i = 0; i < n; i++) {
            System.out.println(text);
         }
      }
   }
}

相关文档