这种检查对于方法开头的 Pascal 样式声明特别有用。 此外,范围太广的变量在重构后也经常保留。
sb
移动的示例:
StringBuilder sb = new StringBuilder();
System.out.println();
sb.append(1);
在应用快速修复后:
System.out.println();
StringBuilder sb = new StringBuilder();
sb.append(1);
配置检查:
sb
变量进行移动,但不建议对以下代码进行移动:
StringBuilder sb = new StringBuilder(a);
if (flag) {
sb.append(1);
}
foo
变量进行移动:
class Foo {
static List<Foo> fooList = new ArrayList<>();
String bar;
Foo(String bar) {
this.bar = bar;
fooList.add(this);
}
public static void main(String[] args) {
Foo foo = new Foo("bar"); // 虽不安全,但也可移动
System.out.println(fooList.size());
System.out.println(foo.bar);
}
}