如果我从这样的方法开始:
package com.sandbox;
import java.util.ArrayList;
import java.util.List;
public class Sandbox {
public static void main(String[] args) {
List<String> strings = new ArrayList<String>();
strings.add("a");
strings.add("b");
for (String string : strings) {
System.out.println(string);
}
}
}
如果我突出显示第一个add(...)
行然后提取方法,则代码变为:
package com.sandbox;
import java.util.ArrayList;
import java.util.List;
public class Sandbox {
public static void main(String[] args) {
List<String> strings = new ArrayList<String>();
addA(strings);
strings.add("b");
for (String string : strings) {
System.out.println(string);
}
}
private static void addA(List<String> strings) {
strings.add("a");
}
}
我几乎不想要这个。我宁愿它做这样的事情:
package com.sandbox;
import java.util.ArrayList;
import java.util.List;
public class Sandbox {
public static void main(String[] args) {
List<String> strings = new ArrayList<String>();
strings.addAll(addA());
strings.add("b");
for (String string : strings) {
System.out.println(string);
}
}
private static List<String> addA() {
List<String> strings = new ArrayList<String>();
strings.add("a");
return strings;
}
}
也许是这样的:
package com.sandbox;
import java.util.ArrayList;
import java.util.List;
public class Sandbox {
public static void main(String[] args) {
List<String> strings = addA();
strings.add("b");
for (String string : strings) {
System.out.println(string);
}
}
private static List<String> addA() {
List<String> strings = new ArrayList<String>();
strings.add("a");
return strings;
}
}
有没有办法以这种方式制作intellij提取方法?
答案 0 :(得分:2)
您可以通过选择方法的前两行(包括新的ArrayList调用)来获得第二个结果。