이 검사는 주로 메서드 시작 부분의 Pascal 형식 선언에 유용합니다. 또한 너무 광범위한 범위를 가진 변수도 리팩터링 후에 남는 경우가 많습니다.
예:
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);
}
}