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

Java利用反射實現(xiàn)框架類的方法實例

 更新時間:2020年10月20日 09:02:49   作者:橘子汁886  
這篇文章主要給大家介紹了關(guān)于Java利用反射實現(xiàn)框架類的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

框架類的簡單實現(xiàn)

實現(xiàn)步驟:

1. 加載配置文件

2. 獲取配置文件中定義的數(shù)據(jù)

3. 加載該類進內(nèi)存

主要講解第一步:加載配置文件 的相關(guān)知識。

//1.加載配置文件
    //1.1創(chuàng)建Properties對象
    Properties pro = new Properties();
    //1.2加載配置文件,轉(zhuǎn)換為一個集合
    //1.2.1獲取class目錄下的配置文件
    ClassLoader classLoader = ReflectTest.class.getClassLoader();
    InputStream is = classLoader.getResourceAsStream("pro.properties");
    pro.load(is);

Properties 是map接口的實現(xiàn)類,它有一個特有的功能:可以保存到流中或者從流中加載。本例中用到它的方法有:
String getProperty(String key) //使用此屬性列表中指定的鍵搜索屬性
void load(Reader reader) // 從輸入字符流讀取屬性列表(鍵和 元素對)

Java是面向?qū)ο笳Z言,面向?qū)ο蟮恼Z言的宗旨就是萬事萬物皆對象,那么類也是一個對象,類里面的屬性和方法也是對象。java里面的所有的類都是Class類的對象,這個ReflectTest.class是獲得這個類相對于Class類的對象。

getclassLoader是Class類下的方法,用于返回類加載器

getResourceAsStream 是ClassLoader類下的方法。可以返回輸入流。

Class.getResourceAsStream(String path) : path 不以'/'開頭時默認是從此類所在的包下取資源,以'/'開頭則是從ClassPath根下獲取。其只是通過path構(gòu)造一個絕對路徑,最終還是由ClassLoader獲取資源。

以下是完整程序:

public class ReflectTest {
  public static void main(String[] args) throws Exception {
    //可以創(chuàng)建任意類的對象,可以執(zhí)行任意方法

    /*
      前提:不能改變該類的任何代碼??梢詣?chuàng)建任意類的對象,可以執(zhí)行任意方法
     */
   /* Person p = new Person();
    p.eat();*/
/*
    Student stu = new Student();
    stu.sleep();*/

    //1.加載配置文件
    //1.1創(chuàng)建Properties對象
    Properties pro = new Properties();
    //1.2加載配置文件,轉(zhuǎn)換為一個集合
    //1.2.1獲取class目錄下的配置文件
    ClassLoader classLoader = ReflectTest.class.getClassLoader();
    InputStream is = classLoader.getResourceAsStream("pro.properties");
    pro.load(is);

    //2.獲取配置文件中定義的數(shù)據(jù)
    String className = pro.getProperty("className");
    String methodName = pro.getProperty("methodName");


    //3.加載該類進內(nèi)存
    Class cls = Class.forName(className);
    //4.創(chuàng)建對象
    Object obj = cls.newInstance();
    //5.獲取方法對象
    Method method = cls.getMethod(methodName);
    //6.執(zhí)行方法
    method.invoke(obj);


  }
}

總結(jié)

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

相關(guān)文章

  • Java中ScheduledExecutorService的使用方法詳解

    Java中ScheduledExecutorService的使用方法詳解

    ScheduledExecutorService是ExecutorService的一個子接口,它主要用于在給定的延遲之后或周期性地執(zhí)行任務(wù),本文主要介紹了ScheduledExecutorService的使用方法,感興趣的可以了解下
    2024-12-12
  • SpringCloud如何使用Eureka實現(xiàn)服務(wù)之間的傳遞數(shù)據(jù)

    SpringCloud如何使用Eureka實現(xiàn)服務(wù)之間的傳遞數(shù)據(jù)

    這篇文章主要介紹了SpringCloud使用Eureka實現(xiàn)服務(wù)之間的傳遞數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • JDK1.6“新“特性Instrumentation之JavaAgent(推薦)

    JDK1.6“新“特性Instrumentation之JavaAgent(推薦)

    這篇文章主要介紹了JDK1.6“新“特性Instrumentation之JavaAgent,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • MyBatis 動態(tài)SQL之where標簽的使用

    MyBatis 動態(tài)SQL之where標簽的使用

    本文主要介紹了MyBatis 動態(tài)SQL之where標簽,where 標簽主要用來簡化 SQL 語句中的條件判斷,可以自動處理 AND/OR 條件,下面就來具體介紹一下
    2024-01-01
  • SpringBoot整合Netty+Websocket實現(xiàn)消息推送的示例代碼

    SpringBoot整合Netty+Websocket實現(xiàn)消息推送的示例代碼

    WebSocket使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動向客戶端推送數(shù)據(jù),本文主要介紹了SpringBoot整合Netty+Websocket實現(xiàn)消息推送的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • SpringBoot使用MapStruct生成映射代碼的示例詳解

    SpringBoot使用MapStruct生成映射代碼的示例詳解

    MapStruct 是一個用于 Java 的代碼生成器,專門用于生成類型安全的 bean 映射代碼,它通過注解處理器在編譯時生成映射代碼,從而避免了運行時的性能開銷和潛在的錯誤,本文給大家介紹了SpringBoot使用MapStruct生成映射代碼的示例,需要的朋友可以參考下
    2024-11-11
  • 基于HttpServletRequest 相關(guān)常用方法的應(yīng)用

    基于HttpServletRequest 相關(guān)常用方法的應(yīng)用

    本篇文章小編為大家介紹,基于HttpServletRequest 相關(guān)常用方法的應(yīng)用,需要的朋友參考下
    2013-04-04
  • MybatisPlus處理四種表與實體的映射及id自增策略分析

    MybatisPlus處理四種表與實體的映射及id自增策略分析

    在最近的工作中,碰到一個比較復(fù)雜的返回結(jié)果,發(fā)現(xiàn)簡單映射已經(jīng)解決不了這個問題了,只好去求助百度,學(xué)習(xí)mybatis表與實體的映射應(yīng)該怎么寫,將學(xué)習(xí)筆記結(jié)合工作碰到的問題寫下本文,供自身查漏補缺,同時已被不時之需
    2022-10-10
  • Java訪問權(quán)限原理與用法詳解

    Java訪問權(quán)限原理與用法詳解

    這篇文章主要介紹了Java訪問權(quán)限,結(jié)合實例形式詳細分析了java構(gòu)造者思想、包、訪問修飾符等相關(guān)原理、應(yīng)用與操作注意事項,需要的朋友可以參考下
    2020-02-02
  • Maven工程引入依賴失敗Dependencies全部飄紅問題

    Maven工程引入依賴失敗Dependencies全部飄紅問題

    這篇文章主要介紹了Maven工程引入依賴失敗Dependencies全部飄紅問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論

库伦旗| 盐源县| 光泽县| 曲阜市| 青州市| 厦门市| 炉霍县| 吐鲁番市| 榆林市| 洛阳市| 伊通| 临汾市| 鄂托克前旗| 临西县| 汤原县| 贵州省| 衡南县| 施秉县| 淮安市| 嘉定区| 华池县| 光山县| 双鸭山市| 富宁县| 东辽县| 会理县| 泗阳县| 桐乡市| 乳山市| 鸡泽县| 凤冈县| 铜川市| 乌拉特中旗| 沂南县| 繁峙县| 阳泉市| 睢宁县| 交城县| 屏山县| 咸丰县| 井研县|