2016-04-28 23 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ノードをチェックする方法は最後ですか?

これは、あなたがTypeDeclarationに持っているFieldDeclarationノードの親にアクセスすることができ、私の現在の仕事

public boolean visit(FieldDeclaration node) { 

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

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

    return false; 
} 

答えて

0

です。そのノードは、すべてのフィールド宣言の配列を提供するメソッド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); 
} 
関連する問題