注解概述
Annotation就是指注解,使用注解時(shí)在前面增加@符號(hào)
- JDk5.0開(kāi)始增加了對(duì)元數(shù)據(jù)(MetaData)的支持,也就是注解(Annotation)
- Annotation時(shí)一種特殊標(biāo)記,可以在編譯、類(lèi)加載、運(yùn)行時(shí)被讀取,作用是可以嵌入一些補(bǔ)充信息,而不更改原有邏輯
- Annotation可以修飾包,類(lèi),構(gòu)造器,方法,成員變量,參數(shù),局部變量的聲明
基本的注解
@Override 覆蓋方法
@Deprecated 方法過(guò)時(shí)
@SuppressWarnings 抑制編譯器警告
自定義注解
- 新建一個(gè)類(lèi)改為使用@interface修飾
- 定義屬性加括號(hào),可以設(shè)置默認(rèn)值
- 下面就可以直接使用了
元注解
JDK的元Annotation用于修飾其他Annotation的定義
@Retention 指定注解的生命周期
- RetentionPolicy.SOURCE 編譯器直接丟棄
- RetentionPolicy.CLASS 編譯時(shí)保留,默認(rèn)值
- RetentionPolicy.RUNTIME 運(yùn)行時(shí)保留
- 使用方法:@Retention(RetentionPolicy.CLASS)
@Target
- 指定能修飾哪些程序元素
'TYPE' class,interface的修飾
'FIELD' 屬性
'METHOD' 方法
'PARAMETER' 參數(shù)
'CONSTRUCTOR' 構(gòu)造器
'LOCAL_VARIABLE' 成員變量 - 使用方法:Target({TYPE, METHOD})
@Documented
- 能被javadoc提取為文檔
@Inherited
- 被修飾的注解具有繼承性,如果某類(lèi)被修飾則子類(lèi)自動(dòng)具有該注解