我正在使用AST来修改源代码文件。现在我坚持一个特定的问题。我有一个界面,我们称之为A:
public interface A extends A_Super{
(...)
}
现在我想添加一个其他接口作为AST的超级接口,让我们调用它B.结果应如下所示:
public interface A extends A_Super, B{
(...)
}
我看到有很多'Decleraton'类,即'MethodDeclaration'或'SingleVariableDeclaration',但我找不到类似'ExtendsDeclaration'的内容。
我很感激任何提示!
答案 0 :(得分:1)
可以在类型声明(类和接口声明的联合)上找到超级接口。
答案 1 :(得分:0)
这就是你需要的。
public static void main(String[] args) {
String source = "public interface A extends A_Super{}";
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(source.toCharArray());
CompilationUnit cu = (CompilationUnit) parser.createAST(null);
AST ast = cu.getAST();
TypeDeclaration td = (TypeDeclaration) cu.types().get(0);
td.superInterfaceTypes().add(ast.newSimpleType(ast.newSimpleName("B")));
System.out.println(source);
System.out.println(cu);
}