<cite id="hhjmr"></cite>

        千鋒教育-做有情懷、有良心、有品質的IT職業教育機構

        400-811-9990
        當前位置:首頁  >  關于學院  >  技術論壇  >  正文

        怎樣理解Java的注解并運用注解編程

        時間:2019-08-05 14:00     來源:千鋒教育 作者:小鋒
        分享: 更多

          先來看下概念,首先從注釋來看。

          注釋:給代碼添加說明和解釋,注釋幫助開發人員理解程序。(Comment)說白點就是注釋是給人看的。

          注解:給代碼添加說明解釋,這個說明給程序使用。(Annotation)

          從 JDK 5.0 開始,Java 增加了對元數據(MetaData) 的支持, 也就是Annotation(注解)。

          三個基本的 Annotation:

          @Override:限定重寫父類方法, 該注解只能用于方法

          @Deprecated:用于表示某個程序元素(類, 方法等)已過時

          @SuppressWarnings: 抑制編譯器警告.

          什么是注解

          Annotation其實就是代碼里的特殊標記, 它用于替代配置文件,也就是說,傳統方式通過配置文件告訴類如何運行,有了注解技術后,開發人員可以通過注解告訴類如何運行。在Java技術里注解的典型應用是:可以通過反射技術去得到類里面的注解,以決定怎么去運行類。

          注解技術的要點:

          如何定義注解

          如何反射注解,并根據反射的注解信息,決定如何去運行類

          1.自定義注解:

          定義新的 Annotation 類型使用@interface關鍵字

          聲明注解的屬性

          注解屬性的作用:原來寫在配置文件中的信息,可以通過注解的屬性進行描述。

          Annotation的屬性聲明方式:String name();

          屬性默認值聲明方式:Stringname() default “xxx”;

          特殊屬性value:如果注解中有一個名稱value的屬性,那么使用注解時可以省略value=部分,如@MyAnnotation(“xxx")

          特殊屬性value[];

          注解屬性的類型可以是:

          String類型

          基本數據類型

          Class類型

          枚舉類型

          注解類型

          以上類型的一維數組

          案例演示1 創建和使用注解

          public @interface MyAnnocation {

          String name();

          int num() default 10;

          MyAnnocation2 anno();

          }

          public @interface MyAnnocation2 {

          String value();

          }

          public class Demo1 {

          @MyAnnocation(name="哈哈",num=50,anno=@MyAnnocation2(value = "xxx"))

          public void show() {

          System.out.println("xxxxxxx");

          }

          }

          2.JDK的元 Annotation

          元 Annotation指修飾Annotation的Annotation。

          @Retention: 只能用于修飾一個 Annotation 定義, 用于指定該 Annotation 可以保留的域, @Rentention 包含一個 RetentionPolicy 類型的成員變量, 通過這個變量指定域。

          RetentionPolicy.CLASS: 編譯器將把注解記錄在 class文件中. 當運行 Java 程序時, JVM 不會保留注解. 這是默認值

          RetentionPolicy.RUNTIME:編譯器將把注解記錄在 class文件中. 當運行 Java 程序時, JVM 會保留注解. 程序可以通過反射獲取該注釋

          RetentionPolicy.SOURCE: 編譯器直接丟棄這種策略的注釋

          @Target:指定注解用于修飾類的哪個成員.@Target 包含了一個名為value,類型為ElementType的成員變量。

          @Documented:用于指定被該元 Annotation 修飾的Annotation類將被 javadoc 工具提取成文檔。

          @Inherited:被它修飾的 Annotation 將具有繼承性.如果某個類使用了被 @Inherited 修飾的Annotation,則其子類將自動具有該注解。

          案例演示2 使用反射獲取注解信息

          @Retention(RetentionPolicy.RUNTIME)

          public @interface PersonInfo {

          String name();

          int age() default 20;

          String gender();

          }

          public class PersonOpe {

          @PersonInfo(name="李四",age=20,gender="男")

          public void show(String name,int age,String gen) {

          System.out.println(name);

          System.out.println(age);

          System.out.println(gen);

          }

          }

          public class Demo2 {

          public static void main(String[] args) throws Exception{

          PersonOpe ope=new PersonOpe();

          Class class1=PersonOpe.class;

          Method method = class1.getMethod("show", String.class,int.class,String.class);

          PersonInfo annotation = method.getAnnotation(PersonInfo.class);

          String name=annotation.name();

          int age=annotation.age();

          String gender=annotation.gender();

          method.invoke(ope, name,age,gender);

          }

          }

        相關文章

        • 北京總部地址:北京市海淀區寶盛北里西區28號中關村智誠科創大廈4層
          北京沙河校區:北京市昌平區沙陽路18號北京科技職業技術學院廣場服務樓
          咨詢電話:400-811-9990
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、Linux云計算+網絡安全培訓、互聯網營銷培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 深圳校區地址:深圳市寶安區寶安大道5010號西部硅谷B座A區6層A605/B座C區1層108
          咨詢電話:0755-23015275/23015546-801/86660670
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、Linux云計算+網絡安全培訓、互聯網營銷培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 上海校區地址:上海市寶山區同濟支路199號智慧七立方3號樓2-4層
          咨詢電話:400-811-9990 021-65233829-609
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、Linux云計算+網絡安全培訓、互聯網營銷培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 鄭州二七區校區地址:鄭州市二七區航海中路60號海為科技園C區10層
          鄭州高新區校區地址:鄭州市高新區金梭路與銀杏路交叉口教育科技產業園南門D座4層
          咨詢電話:0371-55191750/18610973027
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 廣州校區地址:廣州市天河區元崗路200號慧通產業園B9三層
          咨詢電話:020-87088521
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 大連校區地址:遼寧省大連市高新園區愛賢街10號大連設計城A座901
          咨詢電話:400-811-9990
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 武漢金融港校區地址:武漢市東湖高新技術開發區光谷大道77號金融港B18棟3樓
          武漢智慧園校區地址:武漢市東湖高新技術開發區光谷大道61號智慧園21棟2樓
          咨詢電話:027-59313371
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 成都校區地址:成都市武侯區科華北路62號力寶大廈N(北樓)16樓
          咨詢電話:18628039301/18280029283/13028173481/18613201237
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 西安校區地址:西安市雁塔區高新六路52號立人科技C座西區4樓
          咨詢電話:029-85363390
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 杭州旺田校區:浙江省杭州市江干區九堡旺田書畫城A座4層
          杭州龍馳校區:浙江省杭州市下沙經濟技術開發區元成路199號龍馳智慧谷B座7層
          咨詢電話:400-811-9990 0571-86893632/0571-86094032
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 青島校區地址:青島市市北區龍城路卓越世紀中心3號樓8層801
          咨詢電話:0532-80911190
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 重慶校區地址:重慶市高新區科園一路2號大西洋國際12-1
          咨詢電話:400-811-9990 023-68883009
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 長沙校區地址:湖南省長沙市岳麓區麓谷企業廣場A2棟三單元306號
          咨詢電話:0731-85513210
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 哈爾濱校區地址:哈爾濱市松北區世澤路689號科技創新城4號樓11樓
          咨詢電話:400-811-9990/0451-87173191
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 南京校區地址:南京市建鄴區應天大街780號弘輝產業園1棟2層
          咨詢電話:400-811-9990
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 太原校區地址:太原市小店區長治路230號能源互聯網大廈6層
          咨詢電話:400-811-9990 16603513433
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 沈陽校區地址:遼寧省沈陽市渾南區世紀路16號東大軟件園B園B1座A201
          咨詢電話:400-811-9990
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 合肥校區地址:合肥市包河區徽州大道396號東方廣場B座12A
          咨詢電話:400-811-9990
          面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
          認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
        • 千鋒教育服務號

          了解千鋒動態
          關注千鋒教育服務號

        • 千鋒教育移動站

          掃一掃快速進入
          千鋒移動端頁面

        • 千鋒互聯服務號

          掃碼匿名提建議
          直達CEO信箱

        久草在线免费视频在线观看