2012-09-22 48 views
2

我想获取有关字段修饰符的信息。确切地说,我想知道这是一个静态的领域。例如,我要检查下面的代码:Eclipse JDT静态字段修饰符

ASTParser parser = ASTParser.newParser(AST.JLS3); 

我如何可以推断JLS3是静态的场?我用getModifiersModifier.isStatic分析方法时,它工作正常。但是,现在我无法获得上述代码片段中的JLS3是静态字段的信息。有什么我失踪?

编辑:

这是我使用的代码:

private boolean visit(SimpleName name){ 
    boolean isStatic = Modifier.isStatic(name.resolveTypeBinding().getModifiers()); 
    ... 
    return true; 
} 

isStatic是在JLS3的情况下错误的。

+0

getModifiers应该适用于FieldDeclaration和MethodDeclaration。您能否发布您的代码以及您面临的确切问题,例如方法调用给出了意想不到的结果。 –

+0

我已添加代码。 – bellpeace

回答

3

这显然是错误的,使用name.resolveBinding()而不是name.resolveTypeBinding() ---所以你应该得到一个IVariableBinding类型的对象。

name.resolveTypeBinding()返回该字段的类型的绑定,但不是字段本身的绑定,这不是您想要的。