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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

注解(Annotation)

發布時間:2023/12/8 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 注解(Annotation) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1. 概念
  • 2. 元注解

1. 概念

代碼中的特殊標記,這些標記可以在編譯,類加載,運行時被讀取,并執行相應的處理,未來的開發模式都是基于注解的,相對較簡潔

需要反射去讀取注解信息,再去讀其成員的值,再做事,沒有注解的話只能用XML配置文件去做

自定義注解沒有使用反射讀取注解就沒有信息處理流程,也就沒有意義

類加載之后將其加載到內存中,此時稱為運行時類


框架=注解+反射+設計模式

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

JDK內置的三個基本注解,編譯時進行格式檢查

@Override//限定重寫父類方法@Deprecated//表示已過時 @SuppressWarnings("unused")//抑制未使用編譯器警告int num = 10; @SuppressWarnings({"unused","rawtypes"})//rawtypes關于泛型使用抑制ArrayList objects = new ArrayList();

JavaSE基礎版 —> JavaEE

public @interface MyAnnotation {//自定義注解,聲明為@interface,參照SuppressWarnings//成員變量(稱為配置參數)以無參方法形式命名,如果只有一個成員變量,建議參數名為value//沒有成員的稱為標記表示標識作用/*成員變量*/String value();//沒有默認值時要指定@MyAnnotation(value="hi")String hello() default "hello";//使用default指定默認值,要修改使前面使用@MyAnnotation(hello="hi")}

2. 元注解

對注解進行解釋說明的注解

提一下:元數據 例如String name = “tylt”,真實數據是tylt也是最重要的,那么String name就是修飾真實數據的數據,叫元數據

@Retention(RetentionPolicy.CLASS) //指定該注解的生命周期,其中包含一個RetentionPolicy的枚舉類 /** @Description //TODO 枚舉類參數如下* RetentionPolicy.SOURCE:在源件中有效(即源文件保留),編譯時編譯器將直接丟棄此注釋* RetentionPolicy.CLASS:默認值,在class文件中有效(即class保留),當運行Java程序時,JVM不會保留注解。* RetentionPolicy.RUNTIME:在運行時有效(即運行時保留),當運行Java程序時,JVM會保留注釋,程序C才可以通過反射獲取該注釋**/ @Target({TYPE,FIELD,CONSTRUCTOR,METHOD}) //指明當前注解可以修飾哪種類型:例如類(TYPE),構造器,形參,方法//自定義注解通常都使用Retention、Target兩個元注解 /***************************************************/ @Documented //表示可被JavaDoc提取為文檔,因為默認情況下javadoc不包含注解,定義為Documented的注解必須設置Retention為RUNTIME @Inherited //修飾的注解具有繼承性,父類中聲明后子類中也具有@Repeatable(MyAnnotations.class)//可重復注解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")//可重復注解public static void main(String[] args) {} }

總結

以上是生活随笔為你收集整理的注解(Annotation)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。