2015-06-16 87 views
4

如何獲得對Java中匿名內部類的類對象的引用?獲取對匿名內部類的類對象的引用

與非一致性類,它與ClassName.class完成。

+1

什麼是匿名類的參考? (您的意思是代表匿名類的'Class'對象的引用?) – aioobe

+0

甘蔗被' .this'使用 –

+0

請仔細閱讀,OP不希望引用*到*外部類,而是* in *外部類。 – Marvin

回答

6

如果爲了參考匿名,請求參考匿名類,那麼您的匿名類的java.lang.Class實例對象就是如何做到這一點的。

如果將匿名類實例指定給變量obj,則可以使用obj.getClass()對類進行引用。該示例使用Object,但可以使用任何非final類和任何接口。

Object obj = new Object() { 

}; 

obj.getClass(); // Reference to the anonymous class 

可以做同樣的也沒有顯式地創建一個可變像OBJ例如

Button b = ...; 
b.addActionListener(new ActionListener() { 
    .... 
}); 

ActionListener[] listeners = b.getActionListeners(); 
for (ActionListener listener : listeners) { 
    System.out.println(listener.getClass()); // Prints the reference to the class 
} 

如果到類型「匿名」的對象沒有提到,可以使用(在與反射至少)你不能那樣做。

+4

什麼是匿名?我沒有看到它在JDK javadoc –

+0

匿名是任何接口...這裏只是一個名字...可以Runnable,收藏,列表或你喜歡什麼 –

+0

我編輯的答案更精確 –