我需要能够获取有关源文件构造函数的信息,例如beging行号,以及构造函数中的某些行。我对文件的方法使用了类似的想法,以便能够获得开始和结束行号以及方法的名称。对于这个我使用JavaParser,如here中所述。
我找不到能够将JavaParser用于我的目标的方法。有没有办法能够获得构造函数的类似信息?
答案 0 :(得分:2)
您可以使用与方法声明相同的方式获取有关构造函数的信息:
CompilationUnit cu = JavaParser.parse(file);
List<TypeDeclaration> typeDeclarations = cu.getTypes();
for (TypeDeclaration typeDec : typeDeclarations) {
List<BodyDeclaration> members = typeDec.getMembers();
if(members != null) {
for (BodyDeclaration member : members) {
if (member instanceof ConstructorDeclaration) {
ConstructorDeclaration constructor = (ConstructorDeclaration) member;
//Put your code here
//The constructor instance contains all the information about it.
constructor.getBeginLine(); //begin line
constructor.getBlock(); //constructor body
}
}
}
}
答案 1 :(得分:0)
您应该考虑使用Eclipse Java Development Tools(JDT)中的Java perser。 Lars Vogel的代码示例有一个很好的教程:Eclipse JDT - Abstract Syntax Tree (AST) and the Java Model - Tutorial关于如何解析java代码。
您可以为每个构造函数获取IMethod,然后在其上调用getSourceRange()
和getSource()
。