Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java反射:如何检索匿名内部类?_Java_Reflection_Inner Classes_Anonymous Class - Fatal编程技术网

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的??虽然不是解决方案答案,但有很好的论据。将标记为正确。相关: