我在另一个类(SomeClass
)中有一个匿名内部类。
SomeClass.class.getClasses()
和SomeClass.class.getDeclaredClasses()
都返回空数组。
我在Class
的Javadocs中找不到关于此的提示。
是否可以通过反射某种方式检索匿名内部类?
匿名内部类和普通内部类之间还有哪些显着差异?
我在另一个类(SomeClass
)中有一个匿名内部类。
SomeClass.class.getClasses()
和SomeClass.class.getDeclaredClasses()
都返回空数组。
我在Class
的Javadocs中找不到关于此的提示。
是否可以通过反射某种方式检索匿名内部类?
匿名内部类和普通内部类之间还有哪些显着差异?
getDeclaredInnerClasses()
。如果不改变类文件格式,那就无法实现这一功能。 - Stephen C如果使用反射,那可能是一个非常糟糕的想法。撇开这个不谈,我相信你可以在运行时添加额外的内部类,因此列出可能尚未考虑的类是没有意义的。我猜,列出当前加载的类需要通过Java代理或类似的方式。
匿名内部类有虚构的名称、一个封闭方法和额外的合成字段,用于复制已被复制的外部局部变量。在运行时,一个类基本上与另一个类相同。请记住,1.1引入了内部类,但自1.0以来,类文件几乎没有改变。