我正在使用註釋處理器來處理方法參數的註釋。Java註釋處理器,帶註釋的註釋類型
public void multiply(@IntArg int a){
...
}
用於參上的註釋類型有註釋,@Argument現在
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.PARAMETER})
@Argument
public @interface IntArg {
}
,我的註釋處理器運行時,我要檢查,如果一個參數註解(@IntArg
)具有@Argument
註解。我通過執行以下代碼來完成此操作。
VariableElement param = ... //The parameter
for (AnnotationMirror mirror : param.getAnnotationMirrors()) {
Argument arg = mirror.getAnnotationType().getAnnotation(Argument.class);
if(arg != null) {//Args is always null
...
}
}
由於某種原因arg
始終爲空。是否有理由不註釋註釋?
那麼,你的參數沒有'@ Argument'註釋,所以'arg'總是'null' ... –
我沒有得到參數的'@ Argument'註解,我得到註解在這種情況下,AnnotationType是IntArg。 – Joba