Java反射:如何检索匿名内部类?
我在另一个类中有一个匿名内部类(Java反射:如何检索匿名内部类?,java,reflection,inner-classes,anonymous-class,Java,Reflection,Inner Classes,Anonymous Class,我在另一个类中有一个匿名内部类(SomeClass) SomeClass.class.getClasses()和SomeClass.class.getDeclaredClasses()都返回空数组 我在类的Javadocs中找不到关于这方面的提示 匿名内部类能否以某种方式使用反射进行检索? 匿名内部类和普通内部类之间还有什么显著区别?您可以尝试对$1类进行暴力搜索。。。类$n,直到您找不到更多。如果它使用反射,这可能是一个非常糟糕的主意。撇开这一点不谈,我相信您可以在运行时添加其他内部类,因此列
SomeClass
)
SomeClass.class.getClasses()和SomeClass.class.getDeclaredClasses()都返回空数组
我在类
的Javadocs中找不到关于这方面的提示
匿名内部类能否以某种方式使用反射进行检索?
匿名内部类和普通内部类之间还有什么显著区别?您可以尝试对$1类进行暴力搜索。。。类$n,直到您找不到更多。如果它使用反射,这可能是一个非常糟糕的主意。撇开这一点不谈,我相信您可以在运行时添加其他内部类,因此列出可能尚未想到的类是没有意义的。我想,列出当前加载的类需要经过Java代理或类似程序
匿名内部类由名称、封闭方法和其他合成字段组成,用于复制已复制的外部局部变量。一个类在运行时与另一个类几乎相同。请记住,1.1引入了内部类,但类文件自1.0以来几乎没有变化。让人深思的是,给定一个非内部类,您可以找到它的封闭方法,但getDeclaredInnerClasses()不是方法api的一部分。我想我可以理解为什么没有getDeclaredInnerClasses()
。如果不改变类文件格式,就不可能实现。类支持元信息,这些信息可以放在哪里。我不认为它存在,因为可能还没有找到一个好的用例。也许你想做的事情可以用另一种方式来做。e、 g.Enum的??虽然不是解决方案答案,但有很好的论据。将标记为正确。相关: