Ответ 1
Загрузите парсер java из http://javaparser.github.io/javaparser/
Вам нужно будет написать код. Этот код будет вызывать парсер... он вернет вам CompilationUnit:
InputStream in = null;
CompilationUnit cu = null;
try
{
in = new SEDInputStream(filename);
cu = JavaParser.parse(in);
}
catch(ParseException x)
{
// handle parse exceptions here.
}
finally
{
in.close();
}
return cu;
Примечание. SEDInputStream - это подкласс входного потока. Вы можете использовать FileInputStream, если хотите.
Вам нужно будет создать посетителя. Ваш посетитель будет легко, потому что вас интересуют только методы:
public class MethodVisitor extends VoidVisitorAdapter
{
public void visit(MethodDeclaration n, Object arg)
{
// extract method information here.
// put in to hashmap
}
}
Чтобы вызвать посетителя, сделайте следующее:
MethodVisitor visitor = new MethodVisitor();
visitor.visit(cu, null);