rad*_*zio 4 java annotation-processing javapoet annotation-processor
我想生成一个使用 JavaPoet 扩展其他类的类。
例如我有这个类:
@MyAnnotation
public class ClassA {
public ClassA(String paramA, int paramB) {
// some code
}
}
Run Code Online (Sandbox Code Playgroud)
我想生成这样的新类:
public class Generated_ClassA extends ClassA {
public Generated_ClassA (String paramA, int paramB) {
super(paramA, paramB);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我在 JavaPoet 中没有看到任何现成的 API 来创建调用超类构造函数的构造函数。如何做到这一点以及最佳实践是什么?
您可以使用 MethodSpec.Builder#addStatement
MethodSpec.constructorBuilder()
.addModifiers(Modifier.PUBLIC)
.addParameter(String.class, "paramA")
.addParameter(Integer.TYPE, "paramB")
.addStatement("super(paramA, paramB)")
.build();
Run Code Online (Sandbox Code Playgroud)
您还可以使用MethodSpec.Builder#addCode和构建相同的代码,CodeBlock.Builder#addStatement但不幸的是,AFAIK没有特定的构建器可用于调用super.
| 归档时间: |
|
| 查看次数: |
1986 次 |
| 最近记录: |