I am not able to use the JDT binding capabilities.
public class ASTBindingTest extends ASTVisitor {
@Override
public boolean visit(ExpressionStatement node) {
return super.visit(node);
}
@Override
public boolean visit(FieldAccess node) {
System.out.println("Field binding: "+node.resolveFieldBinding());
return super.visit(node);
}
@Override
public boolean visit(SimpleName node) {
System.out.println("Simple name binding: "+node.resolveBinding());
return super.visit(node);
}
public static void main(String[] args) throws IOException {
String source = ...
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setResolveBindings(true);
parser.setSource(source.toCharArray());
org.eclipse.jdt.core.dom.CompilationUnit node = (org.eclipse.jdt.core.dom.CompilationUnit) parser.createAST(null);
node.accept(new ASTBindingTest());
}
}
Source examined:
package a.b.c;
class A {
int i;
}
class D extends A {
public void setI(int i){
this.i = i;
}
public int getI(){
return i;
}
}
Output:
Simple name binding: null
Simple name binding: null
Simple name binding: null
Simple name binding: null
Simple name binding: null
Simple name binding: null
Field binding: null
Simple name binding: null
Simple name binding: null
Simple name binding: null
Simple name binding: null
All the examples I have found are very similar to what I have done and I really do not get my error.