IntelliJ IDEA的快捷键是进行重构的利器。
坊间盛传,完全使用IDEA快捷键重构的代码,是不需要写测试用例保护的
本文就分享一个使用IDEA将方法移到另一个类中,不是父类中哦
前期准备工作(包括相关工具或所使用的原料等)IntelliJ IDEAjava 详细的操作方法或具体步骤
来个脚手架的代码:
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
StringUtils utils=new StringUtils();
print(seasonList); seasonList.add("Spring Rain");
seasonList.add("vernal equinox");
System.out.println("======================");
print(seasonList);
} private static void print(List
for (String season : seasonList) {
System.out.println(season);
}
}
}
package chapter4;/**
* Created by MyWorld on 2016/3/22.
*/
public class StringUtils {
}


动手了!
把目标Class的实例作为入参,写到print的的第二个参数的位置,
此时IDEA会提示编译不过。
肯定不过,因为print以前只有一个入参嘛
将光标放在报错代码的任一位置,按“Alt + Enter”快捷键,
在弹出的菜单中选 第一项
“Add 'StringUtils' as 2nd parameter to method 'print'”
然后回车(直接用鼠标点击也可以的)

在弹出的“Change Signature”对话框中可以看到,
方法print()新增了一个StringUtils类型的参数“utils”
与预期的结果一致,我们点“Refactor”

看看给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
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
for (String season : seasonList) {
System.out.println(season);
}
}
}

到关键的一步了
将光标放在print方法块中任意位置,然后按F6键,
在弹出的“Move Members”对话框中,
"Move members from:"就是我们当前操作的
“To (fully qualified name):”下面的文本框是目标class的全路径
可以看到print方法已经勾选了

点击“To (fully qualified name)”下面文本框右端的“...”按钮
弹出“Choose Destinationg Class”对话框
在“Search by Name”Tab页中的搜索框中输入“StringU”
下面已经要移动到的目标Class显示出来了,
在目标Class的文本中双击即可选中这个class

回来“Move Member”对话框
点“Refactor”

看看操作的结果
RefactorOperate.java中已经没有print方法了


在StringUtils class中,在utils变量上按Alt+Enter键,
在弹出的菜单中选中“Remove Parameter 'utils'”
然后回车
按上面的操作把RefactorOperate.java中的main中的utils变量remove
至此
OK了


看看最后的代码
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
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
for (String season : seasonList) {
System.out.println(season);
}
}
}


- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
