注解(Annotation)
生活随笔
收集整理的這篇文章主要介紹了
注解(Annotation)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 概念
- 2. 元注解
1. 概念
代碼中的特殊標(biāo)記,這些標(biāo)記可以在編譯,類加載,運(yùn)行時(shí)被讀取,并執(zhí)行相應(yīng)的處理,未來(lái)的開(kāi)發(fā)模式都是基于注解的,相對(duì)較簡(jiǎn)潔
需要反射去讀取注解信息,再去讀其成員的值,再做事,沒(méi)有注解的話只能用XML配置文件去做
自定義注解沒(méi)有使用反射讀取注解就沒(méi)有信息處理流程,也就沒(méi)有意義
類加載之后將其加載到內(nèi)存中,此時(shí)稱為運(yùn)行時(shí)類
框架=注解+反射+設(shè)計(jì)模式
JDK內(nèi)置的三個(gè)基本注解,編譯時(shí)進(jìn)行格式檢查
@Override//限定重寫父類方法@Deprecated//表示已過(guò)時(shí) @SuppressWarnings("unused")//抑制未使用編譯器警告int num = 10; @SuppressWarnings({"unused","rawtypes"})//rawtypes關(guān)于泛型使用抑制ArrayList objects = new ArrayList();JavaSE基礎(chǔ)版 —> JavaEE
public @interface MyAnnotation {//自定義注解,聲明為@interface,參照SuppressWarnings//成員變量(稱為配置參數(shù))以無(wú)參方法形式命名,如果只有一個(gè)成員變量,建議參數(shù)名為value//沒(méi)有成員的稱為標(biāo)記表示標(biāo)識(shí)作用/*成員變量*/String value();//沒(méi)有默認(rèn)值時(shí)要指定@MyAnnotation(value="hi")String hello() default "hello";//使用default指定默認(rèn)值,要修改使前面使用@MyAnnotation(hello="hi")}2. 元注解
對(duì)注解進(jìn)行解釋說(shuō)明的注解
提一下:元數(shù)據(jù) 例如String name = “tylt”,真實(shí)數(shù)據(jù)是tylt也是最重要的,那么String name就是修飾真實(shí)數(shù)據(jù)的數(shù)據(jù),叫元數(shù)據(jù)
@Retention(RetentionPolicy.CLASS) //指定該注解的生命周期,其中包含一個(gè)RetentionPolicy的枚舉類 /** @Description //TODO 枚舉類參數(shù)如下* RetentionPolicy.SOURCE:在源件中有效(即源文件保留),編譯時(shí)編譯器將直接丟棄此注釋* RetentionPolicy.CLASS:默認(rèn)值,在class文件中有效(即class保留),當(dāng)運(yùn)行Java程序時(shí),JVM不會(huì)保留注解。* RetentionPolicy.RUNTIME:在運(yùn)行時(shí)有效(即運(yùn)行時(shí)保留),當(dāng)運(yùn)行Java程序時(shí),JVM會(huì)保留注釋,程序C才可以通過(guò)反射獲取該注釋**/ @Target({TYPE,FIELD,CONSTRUCTOR,METHOD}) //指明當(dāng)前注解可以修飾哪種類型:例如類(TYPE),構(gòu)造器,形參,方法//自定義注解通常都使用Retention、Target兩個(gè)元注解 /***************************************************/ @Documented //表示可被JavaDoc提取為文檔,因?yàn)槟J(rèn)情況下javadoc不包含注解,定義為Documented的注解必須設(shè)置Retention為RUNTIME @Inherited //修飾的注解具有繼承性,父類中聲明后子類中也具有@Repeatable(MyAnnotations.class)//可重復(fù)注解public @interface MyAnnotation {String value();} @Target({TYPE,FIELD,CONSTRUCTOR,METHOD}) @Retention(RetentionPolicy.CLASS) @Inherited @Documented public @interface MyAnnotations {MyAnnotation[] value(); } public class Test {@MyAnnotation(value="hi")@MyAnnotation(value="ho")//可重復(fù)注解public static void main(String[] args) {} }總結(jié)
以上是生活随笔為你收集整理的注解(Annotation)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Intel 8086处理器
- 下一篇: 清华计算机系2018录取分数线,2018