如何扩展基类并使用Eclipse JDT实现接口

问题描述 投票:0回答:1

我正在使用Eclipse JDT库。

import cfjapa.parser.ast.body.ModifierSet;
import org.eclipse.jdt.core.ITypeHierarchy;
import org.eclipse.jdt.core.dom.*;
import java.util.List;

public class Main {

    public static void main(String[] args) {
        AST ast = AST.newAST(AST.JLS13, true);
        CompilationUnit unit = ast.newCompilationUnit();

        // set strategy pattern package name
        PackageDeclaration packageDeclaration = ast.newPackageDeclaration();
        packageDeclaration.setName(ast.newSimpleName("strategy"));
        unit.setPackage(packageDeclaration);

        // define strategy interface
        TypeDeclaration type = ast.newTypeDeclaration();
        type.setInterface(Boolean.TRUE);
        type.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
        type.setName(ast.newSimpleName("Strategy"));

        // define strategy interface method
        MethodDeclaration methodDeclaration = ast.newMethodDeclaration();
        methodDeclaration.setConstructor(false);
        List modifiers = methodDeclaration.modifiers();
        modifiers.add(ast.newModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD));
        methodDeclaration.setName(ast.newSimpleName("algorithmInterface"));
        methodDeclaration.setReturnType2(ast.newPrimitiveType(PrimitiveType.VOID));

        type.bodyDeclarations().add(methodDeclaration);
        unit.types().add(type);


        System.out.println(unit);

    }
}

现在,我希望另一个类实现上述接口Strategy。我该怎么做?

我在文档中找不到任何好的示例。

java eclipse eclipse-plugin abstract-syntax-tree eclipse-jdt
1个回答
0
投票

作为对象团队已在评论中提及:

(1)对象团队本身将JDT扩展为其自己的语言OT/J,这是Java的扩展。这是双重策略:

  • 我们维持org.eclipse.jdt.core的fork。尽管这是很繁重的工作,但它成功地证明了JDT体系结构适合于修改。
  • 我们使用自己的role objects概念非侵入式地[[adapt IDE其他部分的行为(特别是org.eclipse.jdt.ui)以反映OT / J的语义
((2)我有几篇(古老的)博客文章,展示了如何将OT / J用于创建JDT的非侵入式变体,包括对扩展语法的支持:

  • 免责声明:我是OT / J的作者,并且是其实现的负责人,后来成为Eclipse JDT的提交者。

    [还有其他问题,有forum

  • © www.soinside.com 2019 - 2024. All rights reserved.