1. <s id="4jtld"></s>
    1. <span id="4jtld"><meter id="4jtld"></meter></span>

        <span id="4jtld"></span>
      1. <s id="4jtld"><noscript id="4jtld"><i id="4jtld"></i></noscript></s>
        溫馨提示×

        Java中注解學習系列教程-3

        發布時間:2020-08-24 09:33:18 來源:網絡 閱讀:183 作者:凱哥Java 欄目:編程語言

        本文是《Java中注解學習系列教程》第三篇文章

        在前兩篇中我們學習了注解的定義、JDK內置注解、注解分類及自定義注解的寫法。

        本文咱們將學習:

        Java中注解學習系列教程-3

        1:自定義注解一些說明

        2:自定義注解怎么使用

        3:怎么解析自定義注解

        一:自定義注解一些說明:

        自定義注解的時候,內部成員可被允許的類型又有哪些呢?

        1:基本類型(Java中8中基本類型)

        2:stirng類型

        3:class

        4:其他注解

        5:枚舉類

        6:以上五類的數組

        如下圖:

        Java中注解學習系列教程-3

        Java官方文檔(https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1)原文如下:

        Java中注解學習系列教程-3

        類型舉例:

        Java中注解學習系列教程-3

        需要說明的:

        1:如果注解只有一個成員時候,成員名稱必須為value

        2:注解類可以沒有成員,沒有成員的注解為:標識注解

        二:自定義注解的使用

        說明:自定義注解根據其使用范圍使用。

        如MyAnnotation1這個自定義注解

        Java中注解學習系列教程-3

        使用范圍是是method和field上。

        我們就在method的使用該注解:

        語法是:

        注解名稱(成員名稱 = 成員值,成員名稱2 = 成員值2)

        如下圖:Java中注解學習系列教程-3

        三:注解解析

        在使用注解的時候,使用的反射處理的。

        public?class?MyAnnotation1Test?{
        
        ????public?static?void?main(String[]?args)?{
        ????????try?{
        ??????????//1:使用類加載器加載類
        ????????????Class?clazz?=?Class.forName("MyAnnotation1PoJo");
        ????????????//2:在對于的類上是否存在對于注解
        ????????????//獲取方法上是否有注解
        ????????????for(Method?method?:?clazz.getMethods()){
        ????????????????boolean?isMothExistMyAnnotation1?=?method.isAnnotationPresent(MyAnnotation1.class);
        ????????????????if(isMothExistMyAnnotation1){
        ????????????????????//3:如果存在。就獲取
        ????????????????????MyAnnotation1?myAnnotation1?=?(MyAnnotation1)method.getDeclaredAnnotation(MyAnnotation1.class);
        ????????????????????System.out.println("==>:方法"+method.getName()+"有注解。值為:"+myAnnotation1.value());
        
        ????????????????}else{
        ????????????????????System.out.println("==>:方法"+method.getName()+"無注解");
        ????????????????}
        ????????????}
        
        ????????}catch?(Exception?e){
        ????????????e.printStackTrace();
        ????????}
        ????}
        }

        Java中注解學習系列教程-3

        注:關于反射方面的學習。在后期,凱哥也會出相應的學習教程。

        我們查看運行后的結果:

        Java中注解學習系列教程-3

        可以正常解析出自定義注解的值。

        下節預告:在下一節中,凱哥將通過自定義注解實現excel的導出功能

        聲明:本文由凱哥Java系列教程中Java注解講解第三篇文章。

        本文出處:http://www.kaigejava.com/article/detail/441

        凱哥博客:www.kaigejava.com

        凱哥公眾號:凱哥Java(kaigejava)


        免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

        主題地圖

        欧美午夜理伦三级在线观看,欧美午夜乱伦片,欧美午夜乱色视频在线观看,欧美午夜免费一区二区,欧美午夜片欧美片在线观看