日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

注解(Annotation)

發(fā)布時(shí)間:2023/12/8 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 注解(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ì)模式

/** @Author tylt* @Description //TODO 這是描述文檔相關(guān)性質(zhì)的注解* @Date 2021/11/26 15:22* @Method main* @Param [args]* @return void**/ public static void main(String[] args) {System.out.println("描述文檔相關(guān)的注解\n");}

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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。