Java反射:如何检索匿名内部类?

时间:2009-10-31 16:41:10

标签: java reflection inner-classes anonymous-class

我在另一个类(SomeClass)中有一个匿名内部类。

SomeClass.class.getClasses()SomeClass.class.getDeclaredClasses()都返回空数组。

我在Class'Javadocs中找不到一些提示。

可以通过某种方式使用反射检索匿名内部类吗?

匿名内部类和普通内部类之间还有哪些显着差异?

2 个答案:

答案 0 :(得分:4)

您可以尝试强制搜索Class $ 1 ... Class $ n,直到找不到为止。

答案 1 :(得分:0)

如果它使用反射,那可能是一个非常糟糕的主意。抛开这一点,我相信你可以在运行时添加其他内部类,因此列出可能尚未考虑过的类是没有意义的。我想,列出当前加载的类需要通过Java代理或类似代理。

匿名内部类组成了名称,封闭方法和用于复制已复制的外部局部变量的其他合成字段。一个类在运行时几乎与另一个类相同。请记住,1.1引入了内部类,但是类文件自1.0以来几乎没有变化。