提取java方法中引用的实例变量

时间:2018-02-14 15:52:53

标签: java javaparser

我有一个类似下面的课程

class A{
    private var1, var2;

    public void methodA(){
        sout(var1);
    }
    public void methodB(){
        sout(var1);
        sout(var2);
    }
}

在此代码段中,我有两个实例变量 var1 var2 的类,以及两个方法 methodA methodB methodA methodB 中都引用了 var1 。如何从java类中提取此信息?

1 个答案:

答案 0 :(得分:2)

您可以使用此库:JavaParser Core

    JavaAnalyzer jpa = new JavaAnalyzer(this, "A.java");

    AtomicBoolean var1IsReferencedInMethodA = new AtomicBoolean(false);

    jpa.visit((MethodDeclaration methodDeclaration) -> {
        var1IsReferencedInMethodA.setTrueWhen(methodDeclaration.getName().equals("methodA")
                && (methodDeclaration.getBody().getStmts().get(0).toString().equals("var1")));
    });

    System.out.println("var1 is referenced in methodA(): " + var1IsReferencedInMethodA);