У 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, читайте, оскільки API API колекції існує…