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

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

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

1,什么是反射?

java的反射,允許程序在運(yùn)行時(shí),創(chuàng)建一個(gè)對(duì)象,獲取一個(gè)類的所有相關(guān)信息等。

2,Class類

要了解反射,就繞不開Class類。

我們平時(shí)開發(fā)的類,例如ClassA,一般會(huì)有一些屬性,會(huì)有幾個(gè)構(gòu)造方法,也會(huì)有一些普通方法,我們還可以使用ClassA來創(chuàng)建對(duì)象,例如ClassA classA = new ClassA()。

java程序在運(yùn)行時(shí),其實(shí)是很多類的很多個(gè)對(duì)象之間的協(xié)作。jvm如何管理這些類呢?它如何知道各個(gè)類的名稱,每個(gè)類都有哪些屬性和哪些方法呢?

jvm會(huì)給每個(gè)類,創(chuàng)建一個(gè)Class類型的對(duì)象,來記錄各個(gè)類的信息,包括類的名稱,類有哪些屬性,各個(gè)屬性的類型,類有哪些方法,各個(gè)方法的名稱參數(shù)列表返回值等。我們可以說ClassA是所有ClassA類型的對(duì)象的類,同理,我們也可以說,Class是所有Class類型對(duì)象的類,而Class類型的對(duì)象,也就是其他的所有的類。

3,可以獲取類的哪些信息呢?

可以獲取類的名稱,類的構(gòu)造函數(shù),類的屬性,類的普通方法等。

4,如何使用獲取到的類的信息呢?

首先看一下如何使用獲取到的類的方法。

jvm提供了Method類,來表示類的方法,我們獲取到的一個(gè)類的方法,其實(shí)就是Method的對(duì)象。

Class獲取方法的方式為,調(diào)用getMethod()方法,第一個(gè)參數(shù)為方法名稱,后面是待獲取的方法的參數(shù)的類型列表。

而調(diào)用獲取到的方法時(shí),也比較特殊,是調(diào)用Methodinvoke方法,第一個(gè)參數(shù)為調(diào)用哪個(gè)對(duì)象的該方法,后面是需要給該方法傳遞的參數(shù)列表。

Object obj = MyClass.class.newInstance();
Method method = MyClass.class.getMethod("methodName", String.class, String.class);
method.invoke(obj, "a", "b");

jvm提供了Constructor來表示類的構(gòu)造方法,提供了Field來表示類的屬性,其使用方法與Method的類似。

總結(jié)

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

相關(guān)文章

  • MyBatis 動(dòng)態(tài)拼接Sql字符串的問題

    MyBatis 動(dòng)態(tài)拼接Sql字符串的問題

    MyBatis的動(dòng)態(tài)SQL,解決了SQL字符串拼接的痛苦。下文分步驟給大家詳細(xì)介紹了MyBatis 動(dòng)態(tài)拼接Sql字符串的問題,非常不錯(cuò),感興趣的朋友一起看下吧
    2016-08-08
  • java虛擬機(jī)jvm方法區(qū)實(shí)例講解

    java虛擬機(jī)jvm方法區(qū)實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于java虛擬機(jī)jvm方法區(qū)實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • 淺析Java常用API(Scanner,Random)匿名對(duì)象

    淺析Java常用API(Scanner,Random)匿名對(duì)象

    這篇文章主要介紹了Java常用API(Scanner,Random)匿名對(duì)象,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java多線程實(shí)現(xiàn)文件下載

    java多線程實(shí)現(xiàn)文件下載

    這篇文章主要為大家詳細(xì)介紹了java多線程實(shí)現(xiàn)文件下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java 中實(shí)現(xiàn)隨機(jī)無重復(fù)數(shù)字的方法

    Java 中實(shí)現(xiàn)隨機(jī)無重復(fù)數(shù)字的方法

    為了更好地理解這個(gè)題意,我們先來看下具體內(nèi)容:生成一個(gè)1-100 的隨機(jī)數(shù)組,但數(shù)組中的數(shù)字不能重復(fù),即位置是隨機(jī)的,但數(shù)組元素不能重復(fù)
    2013-03-03
  • MyBatis discriminator標(biāo)簽原理實(shí)例解析

    MyBatis discriminator標(biāo)簽原理實(shí)例解析

    這篇文章主要為大家介紹了MyBatis discriminator標(biāo)簽實(shí)現(xiàn)原理實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 最新評(píng)論

    奇台县| 新津县| 成武县| 永定县| 诸城市| 德清县| 都安| 肃宁县| 凭祥市| 临漳县| 开平市| 景泰县| 偃师市| 乐清市| 临湘市| 沁阳市| 南京市| 金阳县| 南丹县| 蓬安县| 松潘县| 峨眉山市| 高邮市| 无为县| 盱眙县| 玉树县| 成武县| 阿拉善左旗| 金堂县| 稷山县| 凌云县| 新晃| 泗水县| 阿拉尔市| 宁远县| 和林格尔县| 连城县| 武宣县| 通渭县| 黑山县| 南部县|