2017-04-24 49 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; 
}