你知道怎么用Idea将方法移到另一个类中吗?

2025-11-21 01:20:07

1、来个脚手架的代码:

package chapter4;import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

/**

* Created by MyWorld on 2016/3/21.

*/

public class RefactorOperate {

   public static void main(String[] args) {

       List<String> seasonList = new ArrayList<String>(Arrays.asList("Spring", "Summer", "Autumn", "Winter"));

       StringUtils utils=new StringUtils();

       print(seasonList);        seasonList.add("Spring Rain");

       seasonList.add("vernal equinox");

       System.out.println("======================");

       print(seasonList);

   }    private static void print(List<String> seasonList) {

       for (String season : seasonList) {

           System.out.println(season);

       }

   }

}

package chapter4;/**

* Created by MyWorld on 2016/3/22.

*/

public class StringUtils {

}

你知道怎么用Idea将方法移到另一个类中吗?

你知道怎么用Idea将方法移到另一个类中吗?

2、动手了!

把目标Class的实例作为入参,写到print的的第二个参数的位置,

此时IDEA会提示编译不过。

肯定不过,因为print以前只有一个入参嘛

将光标放在报错代码的任一位置,按“Alt + Enter”快捷键,

在弹出的菜单中选 第一项

“Add 'StringUtils' as 2nd parameter to method 'print'”

然后回车(直接用鼠标点击也可以的)

你知道怎么用Idea将方法移到另一个类中吗?

3、在弹出的“Change Signature”对话框中可以看到,

方法print()新增了一个StringUtils类型的参数“utils”

与预期的结果一致,我们点“Refactor”

你知道怎么用Idea将方法移到另一个类中吗?

4、看看给print增加StringUtils类型的参数后的代码

Code:

package chapter4;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

/**

* Created by MyWorld on 2016/3/21.

*/

public class RefactorOperate {

   public static void main(String[] args) {

       List<String> seasonList = new ArrayList<String>(Arrays.asList("Spring", "Summer", "Autumn", "Winter"));

       StringUtils utils=new StringUtils();

       print(seasonList,utils);        seasonList.add("Spring Rain");

       seasonList.add("vernal equinox");

       System.out.println("======================");

       print(seasonList, utils);

   }    private static void print(List<String> seasonList, StringUtils utils) {

       for (String season : seasonList) {

           System.out.println(season);

       }

   }

}

你知道怎么用Idea将方法移到另一个类中吗?

5、到关键的一步了

将光标放在print方法块中任意位置,然后按F6键,

在弹出的“Move Members”对话框中,

"Move members from:"就是我们当前操作的

“To (fully qualified name):”下面的文本框是目标class的全路径

可以看到print方法已经勾选了

你知道怎么用Idea将方法移到另一个类中吗?

6、点击“To (fully qualified name)”下面文本框右端的“...”按钮

弹出“Choose Destinationg Class”对话框

在“Search by Name”Tab页中的搜索框中输入“StringU”

下面已经要移动到的目标Class显示出来了,

在目标Class的文本中双击即可选中这个class

你知道怎么用Idea将方法移到另一个类中吗?

7、回来“Move Member”对话框

点“Refactor”

你知道怎么用Idea将方法移到另一个类中吗?

8、看看操作的结果

RefactorOperate.java中已经没有print方法了

你知道怎么用Idea将方法移到另一个类中吗?

你知道怎么用Idea将方法移到另一个类中吗?

9、在StringUtils class中,在utils变量上按Alt+Enter键,

在弹出的菜单中选中“Remove Parameter 'utils'”

然后回车

按上面的操作把RefactorOperate.java中的main中的utils变量remove

至此

OK了

你知道怎么用Idea将方法移到另一个类中吗?

你知道怎么用Idea将方法移到另一个类中吗?

10、看看最后的代码

Code:

package chapter4;import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

/**

* Created by MyWorld on 2016/3/21.

*/

public class RefactorOperate {

   public static void main(String[] args) {

       List<String> seasonList = new ArrayList<String>(Arrays.asList("Spring", "Summer", "Autumn", "Winter"));

       StringUtils.print(seasonList);        seasonList.add("Spring Rain");

       seasonList.add("vernal equinox");

       System.out.println("======================");

       StringUtils.print(seasonList);

   }

}

package chapter4;import java.util.List;

/**

* Created by MyWorld on 2016/3/22.

*/

public class StringUtils {

   public static void print(List<String> seasonList) {

       for (String season : seasonList) {

           System.out.println(season);

       }

   }

}

你知道怎么用Idea将方法移到另一个类中吗?

你知道怎么用Idea将方法移到另一个类中吗?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢