2016-04-28 81 views
0

我想檢查一個類對象創建是否在所有聲明之後? 例如Eclipse JDT字段聲明

private final int x; 
private static final Myclass c = new Myclass(); 
private static final int deposit = 100; 

我要檢查並打印如有聲明是有後private static final Myclass c = new Myclass();(是這裏private static final int deposit = 100;存在)。我正在使用Eclipse JDT。

如何檢查給定的FieldDeclaration節點是否是最後一個?

這是我目前的工作

public boolean visit(FieldDeclaration node) { 

    Type t=node.getType(); 
    if(t.toString().equals("Myclass")) 
    { 

     System.out.println("Class declaration found"); 
    } 

    return false; 
} 

回答

0

您可以訪問FieldDeclaration節點,其中有一個TypeDeclaration的父。該節點的方法getFields()提供了所有字段聲明的數組。

public boolean visit(FieldDeclaration node) { 
    if (node.getParent().getNodeType() == ASTNode.TYPE_DECLARATION) { 
     TypeDeclaration parentType = (TypeDeclaration) node.getParent(); 
     int lastFieldIdx = parentType.getFields().length - 1; 
     FieldDeclaration lastFieldInParent = parentType.getFields()[lastFieldIdx]; 
     boolean isLastFieldDecl = lastFieldInParent.equals(node); 
     // ... 
    } 
    return super.visit(node); 
}