Не уверен, задаю ли я здравый вопрос. Я знаю, что каждый внутренний класс хранит ссылку на окружающий объект класса. Итак, могу ли я ссылаться на объект окружающего класса за пределами этого закрывающего класса, учитывая анонимный внутренний класс в качестве параметра функции?
class A{
public static void foo(Thread t) {
//here, how to get the reference of the enclosing class object of "t",
//i.e. the object of class B. I know, somebody might have put in a
//non-inner class Thread. But how can I check if "t" is really from an
//anonymous inner class of class B and then do something here?
}
}
class B{
public void bar() {
A.foo(
new Thread() {
public void run() {
System.out.println("inside bar!");
}
});
}
}