如何使用 JDT 解析匿名对象?
How to parse anonymous object using JDT?
从这里的代码,我只想得到 new Foo();
:
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());
}
});
但是不行
我找了很久的问题,here
给了我答案
添加您的代码:
@Override
public boolean visit(ClassInstanceCreation node) {
System.out.println("ClassInstanceCreation : "+node.toString());
return false;
}
从这里的代码,我只想得到 new Foo();
:
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());
}
});
但是不行
我找了很久的问题,here
给了我答案添加您的代码:
@Override
public boolean visit(ClassInstanceCreation node) {
System.out.println("ClassInstanceCreation : "+node.toString());
return false;
}