3

特定のメソッドのすべての可視変数を取得する Eclipse プラグインを開発したいと考えています。例えば:

public class testVariable {  
    String test1;  
    Object test2;
        void method_test1(){
            int test3,test4;
        }
        void method_test2(){
            int test5,test6;
            //get variable here!!!!
        }
}

test1, test2,test5,test6可視変数 is: in methodを取得したいだけですmethod_test2。私に何ができる?

4

1 に答える 1

6

実際、JDT はプラグインの外部で使用できます。つまり、スタンドアロンの Java アプリケーションで使用できます。

次のコードは、必要な変数を返すことができます。

public static void parse(char[] str) {
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(str);
parser.setKind(ASTParser.K_COMPILATION_UNIT);

final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
cu.accept(new ASTVisitor() {

    public boolean visit(VariableDeclarationFragment var) {

        System.out.println("variable: " + var.getName());

        return false;
    }

    public boolean visit(MethodDeclaration md) {

        if (md.getName().toString().equals("method_test2")) {
            md.accept(new ASTVisitor() {
                public boolean visit(VariableDeclarationFragment fd) {
                    System.out.println("in method: " + fd);
                    return false;
                }
            });
        }
        return false;
    }
});

}

出力は次のとおりです。

variable: test1
variable: test2
in method: test5
in method: test6

JDT チュートリアルでその他の例を確認してください。

于 2013-03-12T20:45:50.300 に答える