1
我想,以確定方法,在一個類中,包含一個特定的方法調用來解析Java源文件(.java)。如何解析Java方法的身體嗎?
在下面的例子中,我需要知道哪些方法包含一個呼叫到XYZ()。因此,分析器應返回method01和method03
public class A{
private void method01(){
//some statements
xyz();
//more statements
}
private void method02(){
//some statements
xyz123();
//more statements
}
private void method03(){
//some statements
xyz();
//more statements
}
}
我嘗試使用JavaParser類(com.github.javaparser)。我創建了一個vistor並通過覆蓋
public void visit(MethodDeclaration n, Void arg)
我能夠「訪問」班級中的所有方法。
但我不知道如何解析造訪的方法的主體。 。我不願意用n.getBody()的toString()包含(「XYZ()」)
有很多方法來解決這個問題,不過這應該工作發現。當然,我們不知道是哪個方法名爲XYZ的我們呼籲,只是我們是calland的方法名爲XYZ的 –