Je veux analyser les fichiers source java (.java) afin d'identifier les méthodes, dans une classe, qui contiennent des appels à une méthode spécifique.Comment analyser le corps de la méthode java?
Dans l'exemple ci-dessous, j'ai besoin de savoir quelles méthodes contiennent un appel à xyz(). Ainsi, l'analyseur doit retourner method01 et 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
}
}
J'ai essayé d'utiliser javaparser (com.github.javaparser). J'ai créé un vistor et en remplaçant
public void visit(MethodDeclaration n, Void arg)
Je suis capable de "visiter" toutes les méthodes de la classe.
Mais je ne sais pas comment analyser le corps de la méthode visted. .. Je suis réticent à utiliser n.getBody() toString() contient (« xyz() »)
Il existe plusieurs façons de résoudre ce problème, mais cela devrait fonctionner. Bien sûr, nous ne savons pas quelle méthode appelée xyz nous appelons, juste que nous sommes appelés et une méthode nommée xyz –