アノテーションを作成し、それを DTO に適用して、Java 1.6 スタイルの annotationProcessor を作成しました。私がやりたいことではない、annotationProcessor に新しいソース ファイルを書き込む方法を確認できます。既存のクラスを変更する方法を確認したり見つけたりすることはできません (理想的には、バイト コードを変更するだけです)。変更は実際にはかなり簡単です。プロセッサに実行させたいのは、処理中の注釈の値に由来する名前の新しい getter と setter を挿入することだけです。
私の注釈プロセッサは次のようになります。
@SupportedSourceVersion(SourceVersion.RELEASE_6)
@SupportedAnnotationTypes({ "com.kn.salog.annotation.AggregateField" })
public class SalogDTOAnnotationProcessor extends AbstractProcessor {
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
//do some stuff
}
}