我目前正在开发一个Eclipse插件。我想以编程方式将Xtend类设置为Java类的超类。 如果两个类都是Java类,我会使用JDT API。问题是我无法通过Java AST或Java模型访问Xtend类。
这是我尝试访问Xtend类的原因:
ASTParser
IJavaProject.findType()
有没有办法将Xtend类设置为超类?
有没有办法用字符串(包+类名)设置超类,而不引用IType
或TypeDeclaration
?
编辑: Java类和Xtend类都已存在。
答案 0 :(得分:1)
如果您已经知道超类的限定名称,则不需要通过AST或Java Model访问它,只需名称即可。
当你谈到设置Java类的超类时,不清楚是从头开始创建类(a)还是(b)存在并且正在修改它。仍然可以使用公共AST 执行这两种情况(在(a)仅创建AST并使用例如ASTFlattener
序列化它的情况下;在(b)的情况下,您应该使用{{1 }})
无论哪种方式,您要使用的API都是ASTRewrite
,其中参数可能是TypeDeclaration.setSuperclassType(Type)
构建的SimpleType
:
QualifiedName