我有一個名爲@Pojo的自定義註解,我用自動wiki文檔生成獲得A類:Java 6的註解處理從一個註解
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
來代替真實的課程。我不知道如何得到一個。
我得到的錯誤是:
javax.lang.model.type.MirroredTypeException: Attempt to access Class object for TypeMirror com.example.restserver.model.appointment.Appointment
的Appointment
是我@Pojo
註解中提及了一個類。
不幸的是,關於Java註釋處理的文檔和/或教程似乎很少。試圖用Google搜索。
沒有多少人會問這樣的問題,但對於我們這些住在(Java)Tartarus中的人來說,其他人的支持變得非常有用 – Ordiel