Я прочитал руководство по внутреннему классу и не понимаю одного. Говорят, что внутренний класс содержит скрытую ссылку на внешний класс, поэтому я задаю несколько вопросов через этот простой класс:
public class OuterClass {
public void doSomething() {
JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
}
}
Итак, у нас есть один локальный внутренний класс, который находится внутри метода doSomething ()
и У меня есть несколько вопросов.
Содержит ли этот локальный внутренний класс ссылку на OuterClass, поскольку он локальный?
Сохраняется ли в этом локальном внутреннем классе память после завершения метода doSomething ()
?
Есть ли ситуация, в которой OuterClass имеет право на сборку мусора, но на локальный внутренний класс по-прежнему ссылаются другие классы? Что случилось бы?