首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASM字节码库中泛型信息的获取

ASM字节码库中泛型信息的获取
EN

Stack Overflow用户
提问于 2013-11-25 05:21:49
回答 1查看 1.3K关注 0票数 1

我正在使用ASM库来解析Java字节码,现在我正在尝试解析一个方法,而且我走的很好。但是,在解析该方法的参数并将其转换为等价的Java源代码时,我面临一些问题,特别是如果参数是泛型列表、ArrayList、Set等类型的话。请考虑此方法访问者代码:

代码语言:javascript
运行
复制
public MethodVisitor visitMethod(int arg0, String arg1, String arg2,
        String arg3, String[] arg4)
{
     System.out.println("Method params: " + arg2);
}

只是指纹:

代码语言:javascript
运行
复制
(Ljava/util/List;)V

对于此方法参数:

代码语言:javascript
运行
复制
List<String> foo;

正如您所看到的,我已经失去了<>之间的所有东西。我知道泛型的擦除。

但是我需要这些信息来知道什么类型的列表不仅仅是java/util/List。是否存在使用ASM库获取这些信息的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-25 05:34:33

ASM有一个SignatureVisitor,您可以使用它访问类型签名。这些包含访问的类、方法和字段的泛型信息。

您可以在asm指南中找到更多有关它的信息,见4.1节-泛型。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20185285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档