我想生成一个使用JavaPoet扩展其他类的类。
例如我有这个课程:
@MyAnnotation
public class ClassA {
public ClassA(String paramA, int paramB) {
// some code
}
}
我想生成像这样的新类:
public class Generated_ClassA extends ClassA {
public Generated_ClassA (String paramA, int paramB) {
super(paramA, paramB);
}
}
但是,我没有在JavaPoet中看到任何现成的API来创建调用超类构造函数的构造函数。如何做到这一点以及最佳做法是什么?
答案 0 :(得分:2)
您可以使用MethodSpec.Builder#addStatement
MethodSpec.constructorBuilder()
.addModifiers(Modifier.PUBLIC)
.addParameter(String.class, "paramA")
.addParameter(Integer.TYPE, "paramB")
.addStatement("super(paramA, paramB)")
.build();
您还可以使用MethodSpec.Builder#addCode
并使用CodeBlock.Builder#addStatement
构建相同的代码,但遗憾的是 AFAIK 没有可用于调用super
的特定构建器。