如何使用javaparser获取类的方法内部使用的变量名
我正在分析的课程:如何使用javaparser获取类的方法内部使用的变量名,java,javaparser,Java,Javaparser,我正在分析的课程: public class Users{ private String name = "Jacob"; private String address = "711 11th Ave, New York"; private int age = 28; public String verifyAgeLimit() { String msg = (this.age < 16) ?
public class Users{
private String name = "Jacob";
private String address = "711 11th Ave, New York";
private int age = 28;
public String verifyAgeLimit() {
String msg = (this.age < 16) ? " is not allwed to use it." : " is Allwed to use it.";
return this.name+msg;
}
public String showName() {
return "User name is:"+this.name;
}
public String showAddress() {
return this.address;
}
public String hello() {
return "Hello World";
}
}
我正试图得到这是输出
verifyAgeLimit()
verifyAgeLimit()
showAddress():这个地址
我尝试将整个方法转换为sting并读取字符串以找出名称,但它变得太复杂,而且不太准确
有什么办法可以解决吗?所用变量的名称由节点保存,字段由节点保存。为它们添加一个访问者,或者以其他方式递归到它们。使用NameExpr,它可以获取在方法中声明的变量,而不是类变量。@RajB009它们在
FieldAccessExpr
中。我现在使用JP,但我不是真正的“高级”。我今天尝试了这个,我认为你的visitor
非常正确,但是您需要在方法中添加第二个Visitor
。就在这里:然后这个方法应该会有帮助。
public void visit(MethodDeclaration n, Object arg) {
System.out.println(n.getName().toString());//It displays the full method
super.visit(n, arg);
}