gpt4 book ai didi

java - 从未调用 MethodVisitor 的 visitParameter

转载 作者:行者123 更新时间:2023-11-30 06:49:32 27 4
gpt4 key购买 nike

我需要使用 asm 5.2 获取方法参数名称。我的来源是 java 1.8。查看 MethodVisitor#visitParameter 的 javadoc 似乎这正是我需要的:

Visits a parameter of this method.

但是这个方法永远不会被调用。我认为这可能与缺少调试信息有关,所以我用 -g:source,lines,vars 编译了这些类,但这也没有帮助。

我求助于使用 visitLocalVariable,但出于我正在编写的实用程序的目的,我不关心方法的代码,所以我正在考虑提供 ClassReader。 SKIP_CODE 到 ClassReader 的接受方法。

我是不是漏了什么?有没有办法在不访问代码的情况下获取参数名称。

最佳答案

您需要使用 -parameters 选项编译您的类,以使 javac 包含参数名称。这就是为什么永远不会调用该方法的原因,如果没有选项,则不包括您的参数名称。

或者,您可以检查 the visitLocalVariable method对于参数名称。对于包含调试符号的非抽象方法,参数名称将包含在此处。

关于java - 从未调用 MethodVisitor 的 visitParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596536/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com