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

Java反射機制的精髓講解

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

1,什么是反射?

java的反射,允許程序在運行時,創(chuàng)建一個對象,獲取一個類的所有相關信息等。

2,Class類

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

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

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

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

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

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

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

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

jvm提供了Method類,來表示類的方法,我們獲取到的一個類的方法,其實就是Method的對象。

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

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

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • Mybatis如何開啟控制臺打印sql語句

    Mybatis如何開啟控制臺打印sql語句

    在SpringBoot與Mybatis整合開發(fā)中,開啟控制臺SQL語句打印是一個常見需求,有助于調試與性能優(yōu)化,方法一:在Mybatis配置文件mybatis-config.xml中添加設置;方法二:在SpringBoot配置文件application.yml或properties中
    2024-11-11
  • Java實現(xiàn)的Windows資源管理器實例

    Java實現(xiàn)的Windows資源管理器實例

    這篇文章主要介紹了Java實現(xiàn)的Windows資源管理器,實例分析了基于java實現(xiàn)windows資源管理器的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • springboot使用Mybatis(xml和注解)過程全解析

    springboot使用Mybatis(xml和注解)過程全解析

    這篇文章主要介紹了springboot使用Mybatis(xml和注解)過程全解析 ,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • java實現(xiàn)數(shù)組中的逆序對

    java實現(xiàn)數(shù)組中的逆序對

    這篇文章主要為大家詳細介紹了java實現(xiàn)數(shù)組中的逆序對,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • MyBatis 動態(tài)拼接Sql字符串的問題

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

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

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

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

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

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

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

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

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

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

    MyBatis discriminator標簽原理實例解析

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

最新評論

莆田市| 林芝县| 广东省| 汾阳市| 辽阳县| 内丘县| 隆回县| 洞头县| 阿坝| 靖边县| 壤塘县| 马公市| 沅江市| 昌乐县| 贵港市| 巴林右旗| 安塞县| 瑞昌市| 南溪县| 宁蒗| 沙田区| 灌南县| 绥化市| 海宁市| 哈尔滨市| 隆德县| 龙里县| 仙居县| 密山市| 澜沧| 鄂托克前旗| 余庆县| 武汉市| 柘荣县| 通州区| 米脂县| 南通市| 康马县| 缙云县| 桐梓县| 和硕县|