我在另一個班級裏有一個匿名的內部班級(SomeClass
)。Java反射:我如何檢索匿名內部類?
SomeClass.class.getClasses()
和SomeClass.class.getDeclaredClasses()
都返回空數組。
我無法在Class
'Javadocs上找到一些提示。
匿名內部類可以通過某種方式使用反射檢索嗎?
匿名內部類和普通內部類之間還有什麼值得注意的區別?
我在另一個班級裏有一個匿名的內部班級(SomeClass
)。Java反射:我如何檢索匿名內部類?
SomeClass.class.getClasses()
和SomeClass.class.getDeclaredClasses()
都返回空數組。
我無法在Class
'Javadocs上找到一些提示。
匿名內部類可以通過某種方式使用反射檢索嗎?
匿名內部類和普通內部類之間還有什麼值得注意的區別?
如果使用反射,這可能是一個非常糟糕的主意。除此之外,我相信你可以在運行時增加額外的內部類,所以列出可能還沒有想到的類是沒有意義的。我猜,列出當前加載的類會需要通過Java代理或類似的東西。
匿名內部類已組成名稱,封閉方法和用於複製已複製的外部局部變量的其他合成域。一個類在運行時與另一個類非常相似。請記住,1.1引入了內部類,但自1.0以來,類文件幾乎沒有改變。
雖然不是一個解決方案的答案,很好的論據。將標記爲正確。 – 2009-11-12 00:36:53
您可以嘗試對類$ 1 ... Class $ n進行蠻力搜索,直到找不到更多。
給予思考的食物給定一個匿名內部類,你可以找到它的封閉方法,但getDeclaredInnerClasses()不是方法api的一部分。 – alphazero 2009-10-31 17:28:06
我想我可以理解爲什麼沒有'getDeclaredInnerClasses()'。如果不改變類文件格式就不可能實現。 – 2009-11-01 01:40:24
類支持元信息,這些信息可以發送到哪裏。我不認爲它在那裏,因爲可能沒有找到好的用例。也許你試圖做的事可以用另一種方式來完成。例如Enum的?? – 2009-11-01 07:57:20
相關:https://stackoverflow.com/q/44475201/314291 – StuartLC 2017-06-10 16:43:47