1

クラス レベルの変数宣言だけを取得したい。javaparser を使用して宣言を取得するにはどうすればよいですか?

public class Login {

    private Keyword browser;
    private String pageTitle = "Login";
}

javaparser を使用すると、変数「browser」の詳細を取得する必要があります。たとえば、ブラウザのタイプは「KeyWord」です。

4

2 に答える 2

8

あなたの質問をよく理解できませんでした - クラスのすべてのフィールドメンバーを取得しますか? もしそうなら、あなたはこのようにすることができます:

CompilationUnit cu = JavaParser.parse(javaFile);
for (TypeDeclaration typeDec : cu.getTypes()) {
    List<BodyDeclaration> members = typeDec.getMembers();
    if(members != null) {
        for (BodyDeclaration member : members) {
        //Check just members that are FieldDeclarations
        FieldDeclaration field = (FieldDeclaration) member;
        //Print the field's class typr
        System.out.println(field.getType());
        //Print the field's name 
        System.out.println(field.getVariables().get(0).getId().getName());
        //Print the field's init value, if not null
        Object initValue = field.getVariables().get(0).getInit();
        if(initValue != null) {
             System.out.println(field.getVariables().get(0).getInit().toString());
        }  
    }
}

このコード例は、あなたのケースで印刷されます: Keyword browser String pageTitle "Login"

これが本当にあなたの質問であったことを願っています...そうでない場合は、コメントしてください。

于 2014-04-08T13:09:47.787 に答える