wiki ドキュメントの自動生成に使用する @Pojo というカスタム アノテーションがあります。
package com.example.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.METHOD)
public @interface Pojo {
Class<?> value();
}
私はこのように使用します:
@Pojo(com.example.restserver.model.appointment.Appointment.class)
リソースメソッドにアノテーションを付けて、アノテーションプロセッサが期待するリソースとタイプを説明するwikiページを自動的に生成できるようにします。
value
注釈プロセッサでフィールドの値を読み取る必要がありますが、実行時エラーが発生します。
私のプロセッサのソースコードには、次の行があります。
final Pojo pojo = element.getAnnotation(Pojo.class);
// ...
final Class<?> pojoJavaClass = pojo.value();
しかし、プロセッサは実際のクラスを利用できません。javax.lang.model.type.TypeMirror
代わりに、実際のクラスの代理として aが必要だと思います。入手方法がわかりません。
私が得ているエラーは次のとおりです。
javax.lang.model.type.MirroredTypeException: Attempt to access Class object for TypeMirror com.example.restserver.model.appointment.Appointment
これは、私の注釈Appointment
の 1 つで言及されているクラスです。@Pojo
残念ながら、Java アノテーション処理に関するドキュメントやチュートリアルはほとんどないようです。ググってみた。