static이 될 수 있는 내부 클래스를 보고합니다.
static 내부 클래스는 둘러싸는 인스턴스에 대한 묵시적 참조를 유지하지 않습니다.
Java 17 이전을 사용하는 경우 이를 통해 메모리 누수의 일반적 원인이 방지되며, 클래스의 인스턴스당 메모리 사용량이 감소합니다.
예:
public class Outer {
class Inner { // not static
public void foo() {
bar("x");
}
private void bar(String string) {}
}
}
빠른 수정 적용 후:
public class Outer {
static class Inner {
public void foo() {
bar("x");
}
private void bar(String string) {}
}
}