Java에서 중첩 클래스는 둘 중 하나 일 수도 있고 static
아닐 수도 있습니다 . 인 경우 static
포함하는 인스턴스의 포인터에 대한 참조를 포함하지 않습니다 (더 이상 내부 클래스라고도 부르지 않고 중첩 클래스라고 함).
static
참조가 필요하지 않을 때 중첩 클래스를 만드는 것을 잊으면 가비지 수집 또는 이스케이프 분석에 문제가 발생할 수 있습니다.
익명의 내부 클래스 static
도 만들 수 있습니까? 아니면 컴파일러가이를 자동으로 파악합니까 (하위 클래스가 없기 때문에 가능함)?
예를 들어 익명의 비교기를 만들면 외부에 대한 참조가 거의 필요하지 않습니다.
Collections.sort(list, new Comparator<String>(){
int compare(String a, String b){
return a.toUpperCase().compareTo(b.toUpperCase());
}
}
Collections.sort(list, String.CASE_INSENSITIVE_ORDER)
것이므로 Java 2부터 작동 한다고 언급해야합니다 . Collection API가 존재하기 때문에 읽어야합니다…