Java 8 编译器插件:如何向生成的 class 添加扩展表达式?

Java 8 compiler Plugin : How to add extending expression to a generated class?

我正在编写一个 Java 编译器插件,以在我的项目的某些 class 中添加一个名为 MyClass 的简单 class(类似于 lombok)。我已经设法通过编写下面的代码来做到这一点(你可以发现整体代码是 here):

TreeMaker maker = TreeMaker.instance(context);
Names symbolsTable = Names.instance(context);

JCTree.JCClassDecl myClass = maker
        .at(((JCTree) node).pos)
        .ClassDef(maker.Modifiers(Flags.PUBLIC | Flags.STATIC | Flags.FINAL),
                symbolsTable.fromString("MyClass"),
                List.nil(),
                null, // replace Here by ?
                List.nil(),
                List.nil()
        );

((JCTree.JCClassDecl) node).defs = ((JCTree.JCClassDecl) node).defs.append(myClass);

之前的代码会生成:

public static class MyClass {
}

现在,我希望 MyClass 扩展另一个参数化 class :

public static class MyClass extends AnotherClass<Param1, Param2>{
}

我不知道该怎么做!
我所知道的是将 ClassDef 方法的第 4 个参数从 null 更改为 JCExpression.

感谢任何帮助。

扩展表达式:

JCTree.JCIdent extendClassName = maker.Ident(symbolsTable.fromString("AnotherClass"));

ListBuffer<JCTree.JCExpression> extendsParams = new ListBuffer<>();
extendsParams.add(maker.Ident(symbolsTable.fromString("Param1")));
extendsParams.add(maker.Ident(symbolsTable.fromString("Param2")));

JCTree.JCTypeApply extend = maker.TypeApply(extendClassName, extendsParams.toList());

我找到的最好的文档是 lombok 项目