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

Java反射機(jī)制的講解

 更新時(shí)間:2019年04月10日 14:06:44   作者:yangyongUestc  
今天小編就為大家分享一篇關(guān)于Java反射機(jī)制的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

Java中的反射提供了一種運(yùn)行期獲取對(duì)象元信息的手段。即正常方法是通過(guò)一個(gè)類創(chuàng)建對(duì)象,反射方法就是通過(guò)一個(gè)對(duì)象找到一個(gè)類的信息。

Java的反射機(jī)制的實(shí)現(xiàn)要借助于4個(gè)類:class,Constructor,F(xiàn)ield,Method;

其中class代表的時(shí)類對(duì) 象,Constructor-類的構(gòu)造器對(duì)象,F(xiàn)ield-類的屬性對(duì)象,Method-類的方法對(duì)象。通過(guò)這四個(gè)對(duì)象我們可以粗略的看到一個(gè)類的各個(gè)組成部分。

Java反射的作用:

在Java運(yùn)行時(shí)環(huán)境中,對(duì)于任意一個(gè)類,可以知道這個(gè)類有哪些屬性和方法。對(duì)于任意一個(gè)對(duì)象,可以調(diào)用它的任意一個(gè)方法。這種動(dòng)態(tài)獲取類的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能來(lái)自于Java 語(yǔ)言的反射(Reflection)機(jī)制。

Java 反射機(jī)制主要提供了以下功能

  • 在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類。
  • 在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象。
  • 在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法。
  • 在運(yùn)行時(shí)調(diào)用任意一個(gè)對(duì)象的方法。

反射的常用類和函數(shù):Java反射機(jī)制的實(shí)現(xiàn)要借助于4個(gè)類:Class,Constructor,F(xiàn)ield,Method;

其中class代表的是類對(duì)象,Constructor-類的構(gòu)造器對(duì)象,F(xiàn)ield-類的屬性對(duì)象,Method-類的方法對(duì)象,通過(guò)這四個(gè)對(duì)象我們可以粗略的看到一個(gè)類的各個(gè)組成部分。其中最核心的就是Class類,它是實(shí)現(xiàn)反射的基礎(chǔ),它包含的方法我們?cè)诘谝徊糠忠呀?jīng)進(jìn)行了基本的闡述。應(yīng)用反射時(shí)我們最關(guān)心的一般是一個(gè)類的構(gòu)造器、屬性和方法,下面我們主要介紹Class類中針對(duì)這三個(gè)元素的方法:

1、得到構(gòu)造器的方法

  • Constructor getConstructor(Class[] params) -- 獲得使用特殊的參數(shù)類型的公共構(gòu)造函數(shù),
  • Constructor[] getConstructors() -- 獲得類的所有公共構(gòu)造函數(shù)
  • Constructor getDeclaredConstructor(Class[] params) -- 獲得使用特定參數(shù)類型的構(gòu)造函數(shù)(與接入級(jí)別無(wú)關(guān))
  • Constructor[] getDeclaredConstructors() -- 獲得類的所有構(gòu)造函數(shù)(與接入級(jí)別無(wú)關(guān))

2、獲得字段信息的方法

  • Field getField(String name) -- 獲得命名的公共字段
  • Field[] getFields() -- 獲得類的所有公共字段
  • Field getDeclaredField(String name) -- 獲得類聲明的命名的字段
  • Field[] getDeclaredFields() -- 獲得類聲明的所有字段

3、獲得方法信息的方法

  • Method getMethod(String name, Class[] params) -- 使用特定的參數(shù)類型,獲得命名的公共方法
  • Method[] getMethods() -- 獲得類的所有公共方法
  • Method getDeclaredMethod(String name, Class[] params) -- 使用特寫的參數(shù)類型,獲得類聲明的命名的方法
  • Method[] getDeclaredMethods() -- 獲得類聲明的所有方法

在程序開發(fā)中使用反射并結(jié)合屬性文件,可以達(dá)到程序代碼與配置文件相分離的目的。如果我們想要得到對(duì)象的信息,一般需要“引入需要的‘包.類'的名稱——通過(guò)new實(shí)例化——取得實(shí)例化對(duì)象”這樣的過(guò)程。使用反射就可以變成“實(shí)例化對(duì)象——getClass()方法——得到完整的‘包.類'名稱”這樣的過(guò)程。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in)

    Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in)

    這篇文章主要介紹了Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Springboot整合ActiveMQ實(shí)現(xiàn)消息隊(duì)列的過(guò)程淺析

    Springboot整合ActiveMQ實(shí)現(xiàn)消息隊(duì)列的過(guò)程淺析

    昨天仔細(xì)研究了activeMQ消息隊(duì)列,也遇到了些坑,下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合ActiveMQ的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • springboot整合gateway的詳細(xì)過(guò)程

    springboot整合gateway的詳細(xì)過(guò)程

    本文介紹了如何配置和使用Spring Cloud Gateway構(gòu)建一個(gè)API網(wǎng)關(guān),通過(guò)實(shí)例代碼介紹了springboot整合gateway的過(guò)程,需要的朋友可以參考下
    2025-01-01
  • Java用棧實(shí)現(xiàn)綜合計(jì)算器

    Java用棧實(shí)現(xiàn)綜合計(jì)算器

    棧(stack)又名堆棧,它是一種運(yùn)算受限的線性表,下面看一下如何在Java中,利用數(shù)組實(shí)現(xiàn)模擬一個(gè)棧,感興趣的朋友跟隨小編一起看看吧
    2022-06-06
  • 詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署

    詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署

    本篇文章主要介紹了詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • springboot集成RestTemplate及常見的用法說(shuō)明

    springboot集成RestTemplate及常見的用法說(shuō)明

    這篇文章主要介紹了springboot集成RestTemplate及常見的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java判斷文件或者文件夾是否存在的功能(不存在創(chuàng)建,存在刪除)

    Java判斷文件或者文件夾是否存在的功能(不存在創(chuàng)建,存在刪除)

    在Java中,要判斷文件或文件夾是否存在,并根據(jù)判斷結(jié)果來(lái)執(zhí)行創(chuàng)建或刪除操作,你可以使用java.io.File類或者java.nio.file包中的類,本文介紹Java判斷文件或者文件夾是否存在,不存在創(chuàng)建,存在刪除,感興趣的朋友一起看看吧
    2025-03-03
  • 詳解SpringBoot靜態(tài)方法獲取bean的三種方式

    詳解SpringBoot靜態(tài)方法獲取bean的三種方式

    本文主要介紹了詳解SpringBoot靜態(tài)方法獲取bean的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • SpringBoot如何整合mybatis-generator-maven-plugin 1.4.0

    SpringBoot如何整合mybatis-generator-maven-plugin 1.4.0

    這篇文章主要介紹了SpringBoot整合mybatis-generator-maven-plugin 1.4.0的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-01-01
  • JAVA實(shí)現(xiàn)掃描線算法(超詳細(xì))

    JAVA實(shí)現(xiàn)掃描線算法(超詳細(xì))

    掃描線算法就是從Ymin開始掃描,然后構(gòu)建出NET,之后根據(jù)NET建立AET。接下來(lái)本文通過(guò)代碼給大家介紹JAVA實(shí)現(xiàn)掃描線算法,感興趣的朋友一起看看吧
    2019-10-10

最新評(píng)論

汨罗市| 玉环县| 漳平市| 惠州市| 康平县| 广宁县| 平原县| 同仁县| 潍坊市| 浦县| 金平| 杭锦旗| 高邮市| 丹巴县| 香格里拉县| 蚌埠市| 曲水县| 灵台县| 门源| 河北区| 二手房| 乌鲁木齐市| 突泉县| 灵宝市| 铜陵市| 五原县| 南充市| 江山市| 方山县| 楚雄市| 绥棱县| 探索| 大足县| 老河口市| 聊城市| 巴楚县| 洪雅县| 馆陶县| 潜山县| 确山县| 循化|