2013-10-06 5 views
2

Я пытаюсь получить доступ к методам, полям и т. Д. Внутреннего класса с использованием ASM. Для этого я подхожу родительский класс как ClassNode и хранениеДоступ к методам InnerClassNode с использованием java и ASM

List<InnerClassNode> list = myClassNode.innerClasses 

Я тогда итерация через этот список и пытаюсь получить информацию о том, что я хочу от каждого InnerClassNode. Вот и все. Рассматривая официальную документацию API ASM, класс InnerClassNode не расширяет класс ClassNode. На самом деле, похоже, нет никакого способа получить что-либо действительно полезное в отношении внутреннего класса. Поскольку это единственный способ, который мне кажется, получить информацию о классе «внутри» класса ClassNode, тогда невозможно получить информацию о внутреннем классе?

ответ

1

InnerClassNode и соответствующие ClassVisitor.visitInnerClass метода просто отражать информацию, хранящуюся в классе байткод-х InnerClasses_attribute, которая описывает взаимосвязь между внутренним классом и текущим классом (например, именем класса, внешнее именем класса и доступом флагами). Чтобы получить информацию о внутреннем классе, вам необходимо загрузить его отдельно, в основном так же, как вы загрузили свой внешний класс.

Смежные вопросы