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

Java反射框架Reflections示例詳解

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

MAVEN 坐標(biāo)

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

Reflections 的作用

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

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

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

項目中使用:

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);

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

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

  // 獲取特定參數(shù)對應(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);
 }
}

具體也可以參見官方文檔:官方API

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

相關(guān)文章

  • 詳解Java如何簡化條件表達式

    詳解Java如何簡化條件表達式

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

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

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

    淺談java如何生成分享海報工具類

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

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

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

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

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

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

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

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

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

    使用SpringAOP獲取用戶操作日志入庫

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

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

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

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

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

最新評論

偃师市| 青神县| 渑池县| 汝南县| 和静县| 新邵县| 泰顺县| 绥棱县| 宁都县| 罗平县| 牙克石市| 都匀市| 汾西县| 宁蒗| 红桥区| 多伦县| 弋阳县| 莱芜市| 莱州市| 万荣县| 伊吾县| 上栗县| 浮梁县| 九龙城区| 弥渡县| 奉节县| 南昌县| 阿拉善左旗| 罗源县| 米泉市| 商水县| 民乐县| 徐州市| 改则县| 阜宁县| 洛川县| 东乌珠穆沁旗| 叙永县| 江孜县| 喀喇沁旗| 邻水|