4

Eclipse wiki (http://wiki.eclipse.org/JDT/FAQ#From_an_IJavaElement_to_its_declaring_ASTNode) からこの記事を読みましたが、IMethod から対応する MethodDeclaration に変換できません。

IMethod オブジェクトにポップアップ メニューを追加する拡張ポイントがあります。この IMethod オブジェクトを持っているので、ASTVisitor でアクセスしたいと思います。

IMethod から MethodDeclaration に変換しようとしている方法は次のとおりです

public static MethodDeclaration convertToAstNode(final IMethod method) throws JavaModelException
{
    final ICompilationUnit compilationUnit = method.getCompilationUnit();

    final ASTParser astParser = ASTParser.newParser( AST.JLS4 );
    astParser.setSource( compilationUnit );
    astParser.setKind( ASTParser.K_COMPILATION_UNIT );
    astParser.setResolveBindings( true );
    astParser.setBindingsRecovery( true );

    final ASTNode rootNode = astParser.createAST( null );

    final CompilationUnit compilationUnitNode = (CompilationUnit) rootNode;

    final String key = method.getKey();

    final ASTNode javaElement = compilationUnitNode.findDeclaringNode( key );

    final MethodDeclaration methodDeclarationNode = (MethodDeclaration) javaElement;

    return methodDeclarationNode;
}

私は何が欠けていますか?

4

1 に答える 1