получить объект включающего класса из анонимного внутреннего класса в качестве параметра функции

Не уверен, задаю ли я здравый вопрос. Я знаю, что каждый внутренний класс хранит ссылку на окружающий объект класса. Итак, могу ли я ссылаться на объект окружающего класса за пределами этого закрывающего класса, учитывая анонимный внутренний класс в качестве параметра функции?

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!");
            }
        });
    }
}
5
задан Qiang Li 26 January 2012 в 20:29
поделиться