【发布时间】:2011-05-25 00:50:02
【问题描述】:
用途:从java字节码文件中获取公共方法签名(返回值、参数、方法名)。
我正在使用 ObjectWeb ASM 框架。
问题:我浏览了 ASM 的 API 规范并尝试了几个示例,但我仍然不知道如何获取签名。 MethodNode类有签名字段,但值为null。
【问题讨论】:
标签: java methods bytecode signature
用途:从java字节码文件中获取公共方法签名(返回值、参数、方法名)。
我正在使用 ObjectWeb ASM 框架。
问题:我浏览了 ASM 的 API 规范并尝试了几个示例,但我仍然不知道如何获取签名。 MethodNode类有签名字段,但值为null。
【问题讨论】:
标签: java methods bytecode signature
你可以试试这样的:
ClassReader cr = new ClassReader(is);
cr.accept(new EmptyVisitor() {
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
if((Opcodes.ACC_PUBLIC & access)>0) {
System.err.println("method name: " + name);
System.err.println("return type: " + Type.getReturnType(desc));
System.err.println("argument types: " + Arrays.toString(Type.getArgumentTypes(desc)));
}
return super.visitMethod(access, name, desc, signature, exceptions);
}
}, 0);
【讨论】: