健全な質問をしているかどうかわからない。私はすべての内部クラスが、囲むクラスオブジェクトへの参照を保持していることを知っています。だから私は関数パラメータとして、匿名の内部クラスを与え、その囲むクラスの外に囲んでいるクラスオブジェクトを参照できますか?あなたはこのt
がB
の内部クラスであるかどうかを確認するために行うことができます関数パラメータとして匿名の内部クラスから囲むクラスオブジェクトを取得する
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!");
}
});
}
}
http://stackoverflow.com/questions/471749/can-i-discover-a-java-class-declared-inner-classes-using-reflectionの複製と思われます –
クラスのみが必要ですか囲むクラスの実際のインスタンス? – Thomas
@トーマス:どちらもできますか? –