私は、利便性の理由から、新しい生成クラスにマージしたい複数のクラスに静的メソッドを持っています。注釈処理とjavapoetで静的メソッドをマージ
私はアノテーション処理とjavapoetを使用しています。
問題:アノテーション処理から、私はExecutableElementsのリストとして静的メソッドを取得します。
JavaPoetについては、それらのMethodSpecを作成する必要があります。私は努力しています:
public MethodSpec apply(@Nullable ExecutableElement input) {
TypeMirror returnType = input.getReturnType();
return MethodSpec.methodBuilder(THE_METHOD_NAME)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.returns(THE_RETURN_TYPE)
.addParameter(EVERY_PARAMETER_WITH_TYPE_AND_NAME)
.addStatement("$T.$S($S)", THE_ENCLOSING_CLASS, THE_METHOD_NAME, THE_PARAMETERS)
.build();
}
私の質問:どのように私はCAPSの欠けている言葉の値を取得するには? ExecutableElementsがリフレクションAPIのように動作しないようです。
ありがとうございます。しかし、上記のコードで見られるように、getReturnTypeは "TypeMirror"型です...これをjavapoetに渡すと、TypeMirrorが返されます。 –
'com.squareup.javapoet.ClassName'を使用してビルドできます've.asType()'の出力の文字列表現から型を作ります。私は[javapoet](https://github.com/square/javapoet)から取られたサンプルコードに基づいてこれを書いていましたが、 –