Sinceramente non ho mai avuto questa necessità, quindi non saprei quali strumenti indicarti.
Una ricerca veloce su google ha suggerito di usare
javaparser, ma in pratica ti devi creare un programma Java con il quale poi ti costruisci l'abstract syntax tree, dal quale puoi ricavare i dettagli dei vari metodi. Nella loro pagina wiki mettono il seguente esempio di codice per "visitare" i vari metodi (che più o meno è quello di cui hai bisogno tu)
public class MethodPrinter {
public static void main(String[] args) throws Exception {
// creates an input stream for the file to be parsed
FileInputStream in = new FileInputStream("test.java");
CompilationUnit cu;
try {
// parse the file
cu = JavaParser.parse(in);
} finally {
in.close();
}
// visit and print the methods names
new MethodVisitor().visit(cu, null);
}
/**
* Simple visitor implementation for visiting MethodDeclaration nodes.
*/
private static class MethodVisitor extends VoidVisitorAdapter {
@Override
public void visit(MethodDeclaration n, Object arg) {
// here you can access the attributes of the method.
// this method will be called for all methods in this
// CompilationUnit, including inner class methods
System.out.println(n.getName());
}
}
}