2012-09-22 49 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()返回該字段的類型的綁定,但不是字段本身的綁定,這不是您想要的。