1

我有一个像下面这样的课

class A{
    private var1, var2;

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

在该代码片段中,我有两个实例变量var1var2和两个方法methodAmethodB的类。var1在methodAmethodB中都被引用。如何从 java 类中提取这些信息?

4

1 回答 1

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);
于 2018-02-14T16:07:40.513 回答