2013-10-06 26 views
2

我想使用ASM訪問內部類的方法,字段等。要做到這一點,我處理父類的ClassNode和存儲使用java和ASM訪問InnerClassNode的方法

List<InnerClassNode> list = myClassNode.innerClasses 

我再通過這個列表迭代並試圖讓我從每個InnerClassNode想要的信息。儘管如此。查看官方的ASM API文檔,InnerClassNode類不擴展ClassNode類。事實上,似乎沒有辦法獲得任何有關內心階層真正有用的東西。由於這是我獲得關於ClassNode內部類的信息的唯一方式,因此無法獲得關於內部類的信息?

回答

1

InnerClassNode和相應ClassVisitor.visitInnerClass方法 簡單地反映存儲在信息類的字節碼的InnerClasses_attribute,其描述了內部類和當前類(例如類名,外類名和訪問標誌)之間的關係。要獲得關於內部類的信息,您需要分別加載它,基本上與加載外部類的方式相同。