最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java反射框架Reflections示例詳解

 更新時(shí)間:2020年07月22日 16:19:55   作者:做個(gè)有夢(mèng)想的咸魚(yú)  
這篇文章主要介紹了Java反射框架Reflections示例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

MAVEN 坐標(biāo)

<dependency>
 <groupId>org.reflections</groupId>
 <artifactId>reflections</artifactId>
 <version>0.9.10</version>
</dependency>

Reflections 的作用

Reflections通過(guò)掃描classpath,索引元數(shù)據(jù),并且允許在運(yùn)行時(shí)查詢這些元數(shù)據(jù)。

  • 獲取某個(gè)類型的所有子類;比如,有一個(gè)父類是TestInterface,可以獲取到TestInterface的所有子類。
  • 獲取某個(gè)注解的所有類型/字段變量,支持注解參數(shù)匹配。
  • 使用正則表達(dá)式獲取所有匹配的資源文件
  • 獲取特定簽名方法。

使用Reflections可以很輕松的獲取以下元數(shù)據(jù)信息:

項(xiàng)目中使用:

public class ReflectionTest {
 public static void main(String[] args) {
  // 掃包
  Reflections reflections = new Reflections(new ConfigurationBuilder()
    .forPackages("com.boothsun.reflections") // 指定路徑URL
    .addScanners(new SubTypesScanner()) // 添加子類掃描工具
    .addScanners(new FieldAnnotationsScanner()) // 添加 屬性注解掃描工具
    .addScanners(new MethodAnnotationsScanner() ) // 添加 方法注解掃描工具
    .addScanners(new MethodParameterScanner() ) // 添加方法參數(shù)掃描工具
    );

  // 反射出子類
  Set<Class<? extends ISayHello>> set = reflections.getSubTypesOf( ISayHello.class ) ;
  System.out.println("getSubTypesOf:" + set);

  // 反射出帶有指定注解的類
  Set<Class<?>> ss = reflections.getTypesAnnotatedWith( MyAnnotation.class );
  System.out.println("getTypesAnnotatedWith:" + ss);

  // 獲取帶有特定注解對(duì)應(yīng)的方法
  Set<Method> methods = reflections.getMethodsAnnotatedWith( MyMethodAnnotation.class ) ;
  System.out.println("getMethodsAnnotatedWith:" + methods);

  // 獲取帶有特定注解對(duì)應(yīng)的字段
  Set<Field> fields = reflections.getFieldsAnnotatedWith( Autowired.class ) ;
  System.out.println("getFieldsAnnotatedWith:" + fields);

  // 獲取特定參數(shù)對(duì)應(yīng)的方法
  Set<Method> someMethods = reflections.getMethodsMatchParams(long.class, int.class);
  System.out.println("getMethodsMatchParams:" + someMethods);

  Set<Method> voidMethods = reflections.getMethodsReturn(void.class);
  System.out.println( "getMethodsReturn:" + voidMethods);

  Set<Method> pathParamMethods =reflections.getMethodsWithAnyParamAnnotated( PathParam.class);
  System.out.println("getMethodsWithAnyParamAnnotated:" + pathParamMethods);
 }
}

具體也可以參見(jiàn)官方文檔:官方API

到此這篇關(guān)于Java反射框架Reflections示例詳解的文章就介紹到這了,更多相關(guān)Java反射框架Reflections內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java如何簡(jiǎn)化條件表達(dá)式

    詳解Java如何簡(jiǎn)化條件表達(dá)式

    在復(fù)雜的實(shí)際業(yè)務(wù)中,往往會(huì)出現(xiàn)各種嵌套的條件判斷邏輯。隨著需求的增加,條件邏輯會(huì)變得越來(lái)越復(fù)雜。面對(duì)這種情況,簡(jiǎn)化判斷邏輯就是不得不做的事情,下面為大家介紹幾種方法
    2022-06-06
  • java制作復(fù)制文件工具代碼分享

    java制作復(fù)制文件工具代碼分享

    如果目標(biāo)位置沒(méi)有同名文件,則直接拷貝過(guò)去;如果目標(biāo)位置已有同名文件,則比對(duì)文件的最后修改日期,來(lái)進(jìn)行覆蓋或者忽略。程序會(huì)在可以在復(fù)制過(guò)程中自動(dòng)創(chuàng)建目錄,并生成log文件,創(chuàng)建了哪些目錄、文件,覆蓋了哪些文件、跳過(guò)了哪些文件,文件的時(shí)間、位置等信息都一目了然
    2014-01-01
  • 淺談java如何生成分享海報(bào)工具類

    淺談java如何生成分享海報(bào)工具類

    這篇文章主要介紹了淺談java如何生成分享海報(bào)工具類,想了解分享海報(bào)知識(shí)的同學(xué)不要錯(cuò)過(guò)哦
    2021-04-04
  • springboot+vue2+elementui實(shí)現(xiàn)時(shí)間段查詢方法

    springboot+vue2+elementui實(shí)現(xiàn)時(shí)間段查詢方法

    這篇文章主要介紹了springboot+vue2+elementui實(shí)現(xiàn)時(shí)間段查詢方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • 在webservice里調(diào)用耗時(shí)方法出錯(cuò)的解決方案

    在webservice里調(diào)用耗時(shí)方法出錯(cuò)的解決方案

    這篇文章主要介紹了在webservice里調(diào)用耗時(shí)方法出錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java 十大排序算法之希爾排序刨析

    Java 十大排序算法之希爾排序刨析

    希爾排序是希爾(Donald Shell)于1959年提出的一種排序算法。希爾排序也是一種插入排序,它是簡(jiǎn)單插入排序經(jīng)過(guò)改進(jìn)之后的一個(gè)更高效的版本,也稱為縮小增量排序,同時(shí)該算法是沖破O(n2)的第一批算法之一。本文會(huì)以圖解的方式詳細(xì)介紹希爾排序的基本思想及其代碼實(shí)現(xiàn)
    2021-11-11
  • 詳解Maven profile配置管理及激活profile的幾種方式

    詳解Maven profile配置管理及激活profile的幾種方式

    這篇文章主要介紹了詳解Maven profile配置管理及激活profile的幾種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用SpringAOP獲取用戶操作日志入庫(kù)

    使用SpringAOP獲取用戶操作日志入庫(kù)

    這篇文章主要介紹了使用SpringAOP獲取用戶操作日志入庫(kù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • MyBatis動(dòng)態(tài)SQL標(biāo)簽用法實(shí)例詳解

    MyBatis動(dòng)態(tài)SQL標(biāo)簽用法實(shí)例詳解

    本文通過(guò)實(shí)例代碼給大家介紹了MyBatis動(dòng)態(tài)SQL標(biāo)簽用法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-07-07
  • Java中的線程安全集合CopyOnWriteArrayList解析

    Java中的線程安全集合CopyOnWriteArrayList解析

    這篇文章主要介紹了Java中的線程安全CopyOnWriteArrayList解析,CopyOnWriteArrayList是ArrayList的線程安全版本,從他的名字可以推測(cè),CopyOnWriteArrayList是在有寫操作的時(shí)候會(huì)copy一份數(shù)據(jù),然后寫完再設(shè)置成新的數(shù)據(jù),需要的朋友可以參考下
    2023-12-12

最新評(píng)論

辽宁省| 兴义市| 陵川县| 田东县| 花莲县| 调兵山市| 凌源市| 白河县| 兰溪市| 剑川县| 阳东县| 尚义县| 扬中市| 仙桃市| 全南县| 巢湖市| 怀宁县| 福建省| 康马县| 西乌| 方山县| 讷河市| 团风县| 遂宁市| 西青区| 达尔| 新乡市| 望城县| 革吉县| 宾川县| 宜阳县| 彩票| 凤翔县| 罗定市| 淮北市| 探索| 太湖县| 榆社县| 烟台市| 那曲县| 砀山县|