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

将内部类或实例转换为静态

通过此重构,可以将内部类转换为嵌套的静态类,或将实例方法转换为静态方法。

执行重构

  1. 在代码编辑器中,将光标放在要转换为静态的类或方法的声明上。
  2. 单击右键展示上下文菜单,选择重构 > 使静态...
  3. 在打开的“将Class设为静态”对话框中,提供重构参数。

    • 如果类或方法包含对外部类字段的引用,则可以将被引用的对象作为参数传递给类构造函数,或者将被引用的字段作为方法的参数传递给类构造函数。如下图所示:
      图1 将Class设为静态
    • 否则,如果类或方法不包含对外部类字段的引用,则可以用类引用替换实例限定符。如下图所示:
      图2 将Class设为静态

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

示例

作为一个例子,将Inner内部类转换为嵌套的静态类。由于Inner类包含对Outer类的message字段的引用,可以将Outer对象和message字段作为Inner类构造函数的参数添加进去。

重构前

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

class Outer {
   public String message;
   public static void main(String[] args) {

   }

   class Inner{
      public void print() {
         System.out.println(message);
      }
   }
}

重构后

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

class Outer {
   public String message;
   public static void main(String[] args) {

   }

   static class Inner {
      
      private String message;

      public Inner( String message) {
         this.message = message;
      }

      public void print() {
         System.out.println(message);
      }
   }
}

相关文档