gpt4 book ai didi

java - 以编程方式将 Xtend 类设置为 Java 类的父类(super class)

转载 作者:行者123 更新时间:2023-12-01 08:53:46 25 4
gpt4 key购买 nike

我目前正在开发 Eclipse 插件。我想以编程方式将 Xtend 类设置为 Java 类的父类(super class)。如果这两个类都是 Java 类,我将使用 JDT API 来完成此操作。问题是我无法通过 Java AST 或 Java 模型访问 Xtend 类。

这是我尝试访问 Xtend 类的方法:

  • 使用 ASTParser
  • 使用IJavaProject.findType()

有没有办法将 Xtend 类设置为父类(super class)?有没有办法使用字符串(包+类名)设置父类(super class),而不引用 ITypeTypeDeclaration

编辑: Java 类和 Xtend 类都已存在。

最佳答案

如果您已经知道父类(super class)的限定名称,则不需要通过 AST 或 Java 模型访问它,只需名称就足够了。

当您谈到设置 Java 类的父类(super class)时,不清楚该类 (a) 是从头开始创建还是 (b) 存在并正在被修改。这两种情况仍然可以使用公共(public) AST 来执行(在 (a) 的情况下,只需创建 AST 并使用 ASTFlattener 对其进行序列化;在 (b) 的情况下,您应该使用 ASTRewrite ).

无论哪种方式,您要使用的 API 都是 TypeDeclaration.setSuperclassType(Type) ,其中参数可能是 SimpleTypeQualifiedName 构建:

void setSuperClass(TypeDeclaration typeDecl, String qualifiedName) {
AST ast = typeDecl.getAST();
Name name = ast.newName(qualifiedName);
Type type = ast.newSimpleType(name);
typeDecl.setSuperclassType(type);
}

关于java - 以编程方式将 Xtend 类设置为 Java 类的父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42189523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com