Java 从未调用MethodVisitor的visitParameter

Java 从未调用MethodVisitor的visitParameter,java,java-bytecode-asm,Java,Java Bytecode Asm,我需要使用ASM5.2获取方法参数名称。我的源代码是Java1.8。查看MethodVisitorvisitParameter的javadoc,这似乎正是我所需要的: 访问此方法的参数 但是这个方法永远不会被调用。我认为这可能与缺少调试信息有关,所以我用-g编译了类:source、line、vars,但这也没有帮助 我求助于使用visitLocalVariable,但为了实现我正在编写的实用程序,我并不关心该方法的代码,因此我正在考虑向ClassReader的accept方法提供ClassRea

我需要使用ASM5.2获取方法参数名称。我的源代码是Java1.8。查看MethodVisitorvisitParameter的javadoc,这似乎正是我所需要的:

访问此方法的参数

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

我求助于使用visitLocalVariable,但为了实现我正在编写的实用程序,我并不关心该方法的代码,因此我正在考虑向ClassReader的accept方法提供ClassReader.SKIP_代码


我错过了什么?是否有一种方法可以在不访问代码的情况下获取参数名。

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

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