привязки не разрешаются с обработкой AST в затмении
Я использую анализатор JDT AST eclipse для обработки некоторого кода Java и пытаюсь извлечь привязки типов для полей и объявлений методов. Логика для этого внутри моего класса Visitor (см. Ниже). К сожалению, мне не повезло, и ни одна из привязок не разрешается (они постоянно равны нулю). Интересно то, что привязки работают с одним и тем же кодом с помощью плагина eclipse ASTView. Что я делаю неправильно?
Вот некоторые соответствующие фрагменты кода, которые, надеюсь, помогут кому-то понять, что происходит!
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(source);
parser.setResolveBindings(true);
CompilationUnit unit = (CompilationUnit) parser.createAST(null);
GenericVisitor visitor = new GenericVisitor(outDir + "//" + file.getName() + ".xml");
visitor.process(unit);
public class GenericVisitor extends ASTVisitor
{
public void endVisit(FieldDeclaration node)
{
String bindingInfo = "";
ITypeBinding binding = node.getType().resolveBinding();
if(binding == null)
{
System.out.println("field declaration binding = null");
}
else
{
bindingInfo = binding.getQualifiedName();
}
endVisitNode(node, bindingInfo);
}
public void endVisit(MethodInvocation node)
{
String bindingInfo = "";
IMethodBinding binding = node.resolveMethodBinding();
if(binding == null)
{
System.out.println("method binding = null");
}
else
{
bindingInfo = binding.toString();
}
endVisitNode(node, bindingInfo);
}
}