我正在尝试使用以下代码获取有关方法中局部变量的信息:
{start_v1: {end_v4, end_v5, ...}, start_v2: {end_v3}}
问题是我不断获取mn.localVariables的空列表,参数列表始终为null。我看了一个类似的问题here,因为它是我试图实现的,但它没有解决问题。关于如何解决这个问题的任何想法?
我正在测试代码的一些函数:
public void foo(ClassNode cn){
for(MethodNode mn : cn.methods){
System.out.println("# of local variables: " + mn.localVariables.size());
if(mn.parameters != null)
System.out.println("# of parameters: " + mn.parameters.size());
else
System.out.println("# of parameters: 0");
System.out.println("Class name: " + cn.name);
System.out.println("Method name: " + mn.name);
System.out.println("Method signature: " + mn.desc);
for(final LocalVariableNode local : (List<LocalVariableNode>)mn.localVariables) {
System.out.println("Local Variable: " + local.name + " : " + local.desc + " : " + local.signature + " : " + local.index);
}
}
}
答案 0 :(得分:0)
为什么不使用如下所示的-g选项编译Java? javac -g XXX.java
-g选项生成所有调试信息