記錄原因
isAnnotationPresent() 傳回False
解決方案
自定義注解時,如果想通過反射擷取注解資訊必須加上
@Retention(RetentionPolicy.RUNTIME)
聲明該注解的存活政策可以保留到運作時
擴充
@Retention
有3個值
@Retention(RetentionPolicy.SOURCE)
僅僅停留在源碼,編譯時去除
@Retention(RetentionPolicy.RUNTIME)
保留到運作時,通過反射可以擷取注解資訊 隻有保留到運作時,調用isAnnotationPresent()才傳回True
@Retention(RetentionPolicy.CLASS)
保留到編譯後的位元組碼,運作時無法獲得注解資訊