<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JAVA - 注解

      認識注解

      注解(Annotation)

      • 就是JAVA 代碼里的特殊標記,比如:@Override,@Test 等,作用是:讓其他程序根據注解信息來決定怎么執行該程序。
      • 注意:注解可以用在類上、構造器上、方法上、成員變量上、參數上、等位置處

      image

      自定義注解

      • 就是自己定義注解

      image

      特殊屬性名稱:value

      • 如果注解中只有一個value屬性,使用注解時,value 名稱可以不寫

      注解的原理

      image

      • 注解本質是一個接口,Java 中所有的注解都是繼承了Annotation接口的
      • @注解(...): 其實就是一個實現類對象,實現了該注解以及Annotation 接口

      元注解

      • 指的是:修飾注解的注解

      image

      注解解析

      什么是注解解析?

      • 就是判斷類上,方法上,成員變量上是否存在注解,并把注解里面的內容解析出來。

      如何解析注解?

      • 要解析誰上面的注解,就應該先拿到誰。
      • 比如要解析類上面的注解,則應該先獲取該類的Class對象,再通過Class對象解析其上面的注解
      • 比如要解析成員方法上的注解,則應該獲取該成員方法上的Method對象,再通過Method對象解析其上面的注解
      • Class、Method、Field、Constructor 都實現了AnnotatedElement接口,它們都擁有解析注解的能力。

      image

      解析案例:

      import java.lang.annotation.ElementType;
      import java.lang.annotation.Retention;
      import java.lang.annotation.RetentionPolicy;
      import java.lang.annotation.Target;
      
      @Target({ElementType.TYPE,ElementType.METHOD})
      @Retention(RetentionPolicy.RUNTIME)
      public @interface MyTest {
          String value();
          double aaa()  default 100L;
          String[] bbb();
      }
      
      
      
      @MyTest(value = "蜘蛛精", aaa=99.5, bbb={"紫霞","牛夫人"})
      public class MyTestDemo {
      
          @MyTest(value = "至尊寶", aaa=100,bbb={"孫悟空","牛魔王"})
          public void run(){
          }
      }
      
      
      
      
      
      import java.lang.annotation.Annotation;
      import java.lang.reflect.Method;
      import java.util.Arrays;
      
      /*
      注解解析
       */
      public class AnnotationDemo {
          public static void main(String[] args) throws NoSuchMethodException {
              //1.先得到class對象
              Class<MyTestDemo> myTestDemoClass = MyTestDemo.class;
              //2.解析類上的注解
              if(myTestDemoClass.isAnnotationPresent(MyTest.class)){
                  MyTest declaredAnnotation = myTestDemoClass.getDeclaredAnnotation(MyTest.class);
                  System.out.println(declaredAnnotation.value());
                  System.out.println(Arrays.toString(declaredAnnotation.bbb()));
                  System.out.println(declaredAnnotation.aaa());
              }
      
      
              //2.解析方法上的注解
              Method run = myTestDemoClass.getDeclaredMethod("run");
              if(run.isAnnotationPresent(MyTest.class)){
                  MyTest declaredAnnotation = run.getDeclaredAnnotation(MyTest.class);
                  System.out.println(declaredAnnotation.value());
                  System.out.println(Arrays.toString(declaredAnnotation.bbb()));
                  System.out.println(declaredAnnotation.aaa());
              }
          }
      }
      
      
      posted @ 2025-08-10 10:29  chuangzhou  閱讀(27)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品无码久久一线| 蜜臀久久精品亚洲一区| 中文字幕人妻色偷偷久久| 阳城县| 精品福利一区二区三区免费视频| 国产一区二区三区色老头| 一本色道久久88精品综合| 男女裸体影院高潮| 亚洲av一区二区在线看| 国产成人精品无码播放| 久久久精品94久久精品| 九九热精品免费视频| 高清国产一区二区无遮挡| 好先生在线观看免费播放 | 偷拍精品一区二区三区| 99久久婷婷国产综合精品青草漫画| 欧美人禽zozo动人物杂交| 九色国产精品一区二区久久| 亚洲成av人片在www色猫咪| 久久精品国产福利一区二区| 国产精品偷乱一区二区三区| 麻豆精品一区二区综合av| 精品国产乱码久久久久乱码| 国产精品一区中文字幕| 国产视频一区二区三区麻豆| 永久免费AV无码网站YY| 天堂V亚洲国产V第一次| jizz国产免费观看| 久久香蕉国产线看观看猫咪av| 久久久久无码中| 亚洲一区二区三区自拍偷拍| 成人3d动漫一区二区三区| 亚洲AVAV天堂AV在线网阿V| 亚洲女同性同志熟女| 国产午夜亚洲精品福利| 少妇人妻综合久久中文字幕| 精品国产一区二区三区av色诱| 国产三级国产精品国产专| 亚洲精品麻豆一二三区| 国产精品无码免费播放| 日韩一区二区三在线观看|