有没有办法使用JavaParser或其他API获取有关构造函数的信息?

时间:2012-03-31 12:29:53

标签: java parsing constructor

我需要能够获取有关源文件构造函数的信息,例如beging行号,以及构造函数中的某些行。我对文件的方法使用了类似的想法,以便能够获得开始和结束行号以及方法的名称。对于这个我使用JavaParser,如here中所述。

我找不到能够将JavaParser用于我的目标的方法。有没有办法能够获得构造函数的类似信息?

2 个答案:

答案 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()