国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java注解與反射原理說明

Java注解與反射原理說明

2019-06-19 17:39cakincqm Java教程

今天小編就為大家分享一篇關于Java注解與反射原理說明,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

一 點睛

注解若想發揮更大作用,還需借助反射機制之力。通過反射,可以取得一個方法上聲明的注解的全部內容。

一般有兩種需求:

1 取得方法中全部的注解,通過調用getAnnotations來實現。

2 判斷操作是否是指定注解,通過調用getAnnotation來實現。

下面從源碼角度來說明怎樣獲取這些注解信息。

二 源碼導讀——取得方法中全部的注解

public class AccessibleObject implements AnnotatedElement {
  ...
  //取得全部Annotation
  public Annotation[] getAnnotations() {
    return getDeclaredAnnotations();
  }  
  ...
}
public final class Method extends Executable {
  ...
  public Annotation[] getDeclaredAnnotations() {
    //針對Method類,需要調用父類的getDeclaredAnnotations方法
    return super.getDeclaredAnnotations();
  }  
  ...
}
//Method的父類Executable的getDeclaredAnnotations實現全部注解信息的獲取
public abstract class Executable extends AccessibleObject
  implements Member, GenericDeclaration {
  ...
  public Annotation[] getDeclaredAnnotations() {
    return AnnotationParser.toArray(declaredAnnotations());
  }  
  ...
}

三 源碼導讀——判斷操作是否是指定注解

public final class Method extends Executable {
  ...
  ////取得指定Annotation
  public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
    return super.getAnnotation(annotationClass);
  }
  ...
}
public abstract class Executable extends AccessibleObject
  implements Member, GenericDeclaration {
  ...
  public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
    Objects.requireNonNull(annotationClass);
    //獲得指定注解類的信息
    return annotationClass.cast(declaredAnnotations().get(annotationClass));
  }  
  ...
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。

延伸 · 閱讀

精彩推薦
  • Java教程JavaWeb 實現驗證碼功能(demo)

    JavaWeb 實現驗證碼功能(demo)

    在 WEB-APP 中一般應用于:登錄、注冊、買某票、秒殺等場景,大家都接觸過這個驗證碼操作,今天小編通過實例代碼給大家講解javaweb實現驗證碼功能,需要...

    java教程網12832020-08-05
  • Java教程Java list.remove( )方法注意事項

    Java list.remove( )方法注意事項

    這篇文章主要介紹了Java list.remove( )方法注意事項,非常簡單易懂,需要的朋友可以參考下...

    妖久9552021-05-25
  • Java教程淺談Java(SpringBoot)基于zookeeper的分布式鎖實現

    淺談Java(SpringBoot)基于zookeeper的分布式鎖實現

    這篇文章主要介紹了Java(SpringBoot)基于zookeeper的分布式鎖實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    LJY_SUPER5742021-07-21
  • Java教程JAVA中通過自定義注解進行數據驗證的方法

    JAVA中通過自定義注解進行數據驗證的方法

    java 自定義注解驗證可自己添加所需要的注解,下面這篇文章主要給大家介紹了關于JAVA中通過自定義注解進行數據驗證的相關資料,文中通過示例代碼介紹...

    Decouple6362021-05-25
  • Java教程Java之Springcloud Feign組件詳解

    Java之Springcloud Feign組件詳解

    這篇文章主要介紹了Java之Springcloud Feign組件詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    深情以改10322021-11-12
  • Java教程java 中鎖的性能提高辦法

    java 中鎖的性能提高辦法

    這篇文章主要介紹了java 中鎖的性能提高辦法的相關資料,需要的朋友可以參考下...

    Java之家3092020-08-13
  • Java教程SpringBoot引入Thymeleaf的實現方法

    SpringBoot引入Thymeleaf的實現方法

    這篇文章主要介紹了SpringBoot引入Thymeleaf的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    Bobby6472021-07-28
  • Java教程springboot ehcache 配置使用方法代碼詳解

    springboot ehcache 配置使用方法代碼詳解

    EhCache是一個比較成熟的Java緩存框架,Springboot對ehcache的使用非常支持,所以在Springboot中只需做些配置就可使用,且使用方式也簡易,今天給大家分享spri...

    m1719309529412912021-09-16
主站蜘蛛池模板: 天堂v视频 | 日韩视频在线免费观看 | 中文字幕一区二区三区日韩精品 | 欧美激情五月 | 欧美freesex交免费视频 | 欧美视频第一页 | av在线免费观看一区二区 | 热久久这里只有精品 | 九色91| 国产精品久久久久久久久久 | 午夜视频在线播放 | 国产三级一区二区三区 | 天堂中文在线8 | 亚洲一区二区在线播放 | 精品国产乱码一区二区三区 | 国产又色又爽又黄又免费 | 成人精品网站在线观看 | 欧美 日韩 中文 | 91久久精品国产91久久 | 一区影院 | 久久精品国产99国产 | 在线a视频 | 精品一区二区在线观看 | 求av网站| 欧美成人一区二区三区 | 欧美精品日韩精品 | 中文字幕自拍偷拍 | 日韩精品一区二区三区第95 | 一区二区三区日本 | 国产精品一区二区免费 | 99福利视频| 欧美精品一区二区三区四区 | 欧美一区二区三区久久精品 | 欧美精品v国产精品v日韩精品 | 成人在线免费 | 欧美成人精品激情在线观看 | 视频在线亚洲 | ww8888免费视频 | 精品久久久久久久 | 操操爱| 99re6在线视频精品免费 |