JAVA元註解@interface詳解(@Target,@Documented,@Retention,@Inherited)

茅坤寶駿氹發表於2018-05-02

轉載自 JAVA元註解@interface詳解(@Target,@Documented,@Retention,@Inherited)


jdk1.5起開始提供了4個元註解,用來定義自定義註解的註解,它們分別是:


@Target


指定註解使用的目標範圍(類、方法、欄位等),其參考值見類的定義:java.lang.annotation.ElementType


@Documented


指定被標註的註解會包含在javadoc中。


@Retention


指定註解的生命週期(原始碼、class檔案、執行時),其參考值見類的定義:java.lang.annotation.RetentionPolicy


@Inherited


指定子類可以繼承父類的註解,只能是類上的註解,方法和欄位的註解不能繼承。即如果父類上的註解是@Inherited修飾的就能被子類繼承。


jdk1.8又提供了以下兩個元註解


@Native


指定欄位是一個常量,其值引用native code。


@Repeatable


註解上可以使用重複註解,即可以在一個地方可以重複使用同一個註解,像spring中的包掃描註解就使用了這個。




所有元註解定義在java.lang.annotation包下面


其中Annotation是註解的基本介面,所有的註解都繼承這個介面。



看下@Autowired註解的實現



其實就是繼承了Annotation介面。



瞭解了jdk對註解的定義,所以想要自定義一個註解就以@interface開始吧。


相關文章