我正在尝试使用ASM访问内部类的方法,字段等。为此,我将父类视为ClassNode并存储

List<InnerClassNode> list = myClassNode.innerClasses


然后,我遍历此列表,并尝试从每个InnerClassNode中获取所需的信息。这是东西。查看官方的ASM API文档,InnerClassNode类不会扩展ClassNode类。实际上,似乎没有办法获得有关内部类的真正有用的信息。由于这是获取对类内部“类”内类的信息的唯一显而易见的方式,那么就不可能获取有关内部类的信息吗?

最佳答案

InnerClassNode和相应的ClassVisitor.visitInnerClass方法
只需反映存储在类字节码InnerClasses_attribute中的信息即可,该信息描述了内部类和当前类之间的关系(例如,类名,外部类名和访问标志)。要获取有关内部类的信息,您需要分别加载它,基本上与加载外部类相同。

09-27 08:55