如果我从这样的方法开始:
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 提取方法?