真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java反射機制的精髓講解

1,什么是反射?

創(chuàng)新互聯(lián)公司專注于滁州網(wǎng)站建設(shè)服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供滁州營銷型網(wǎng)站建設(shè),滁州網(wǎng)站制作、滁州網(wǎng)頁設(shè)計、滁州網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務,打造滁州網(wǎng)絡公司原創(chuàng)品牌,更為您提供滁州網(wǎng)站排名全網(wǎng)營銷落地服務。

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

2,Class類

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

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

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

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

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

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

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

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

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

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

而調(diào)用獲取到的方法時,也比較特殊,是調(diào)用Methodinvoke方法,第一個參數(shù)為調(diào)用哪個對象的該方法,后面是需要給該方法傳遞的參數(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é)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接


本文標題:Java反射機制的精髓講解
鏈接URL:http://weahome.cn/article/pcdigd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部