2017-04-24 7 views
0

は、私だけnew Foo();を取得したい:JDTを使用して匿名オブジェクトを解析する方法は?ここでは、コードから

class Foo{ 
    public Foo(){ 
    } 
    public Foo(int a){ 
     System.out.println(a); 
    } 
    public void fo(){ 
     System.out.println(test); 
    } 
    public static void main(String[]args){ 
     Foo foo = new Foo(1); 
     new Foo(); 
     new Foo().fo(); 
    } 
} 

私は自分のコードを解析するためにJDTを使用してみたが、ここのようなので、私のコード:

ASTParser parser = ASTParser.newParser(AST.JLS2); 
parser.setSource(myCode.getText().toCharArray()); 
parser.setKind(ASTParser.K_COMPILATION_UNIT); 
final CompilationUnit cu = (CompilationUnit) parser.createAST(null); 

cu.accept(new ASTVisitor() { 
    @Override 
    public boolean visit(MethodInvocation node){ 
     System.out.println(node.toString()); 
    } 

    @Override 
    public boolean visit(ConstructorInvocation node) { 
     System.out.println(node.toString()); 
    } 

    @Override 
    public boolean visit(AnonymousClassDeclaration node) { 
     System.out.println(node.toString()); 
    } 
}); 

しかし、それは

動作しません。

答えて

0

私は長い間、私の問題を検索していたら、私はあなたのコードを追加しますhere

から答えを得る必要があり:

@Override 
public boolean visit(ClassInstanceCreation node) { 
    System.out.println("ClassInstanceCreation : "+node.toString()); 
    return false; 
} 
関連する問題