4

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 がありません。これを行う方法とベストプラクティスは何ですか?

4

1 に答える 1

6

を使用してそれを行うことができます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が、残念ながら、呼び出しに使用できる特定のビルダーはありませsuper

于 2016-09-01T11:48:44.677 に答える