Java實戰(zhàn)項目在線培訓(xùn)課程之Java反射機(jī)制

Java實戰(zhàn)項目在線培訓(xùn)課程之Java反射機(jī)制

深圳達(dá)內(nèi)教育      2022-03-15 23:00:01     12

Java實戰(zhàn)項目在線培訓(xùn)課程之Java反射機(jī)制,Java實戰(zhàn)項目在線培訓(xùn)課程,Java反射說的是在運(yùn)行狀態(tài)中,對于任何一個類,我們都能夠知道這個類有哪些方法和屬性。很多千鋒的學(xué)

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細(xì)介紹

Java實戰(zhàn)項目在線培訓(xùn)課程,Java反射說的是在運(yùn)行狀態(tài)中,對于任何一個類,我們都能夠知道這個類有哪些方法和屬性。很多千鋒的學(xué)員在面試中都會被問到Java反射機(jī)制這個問題,為了幫助大家更好的掌握這個知識點,小編整理了一些資料分享給大家。

一、反射概念

在正式講解反射之前,為了很好的去理解它我們先從一個案例說起。請看下面的代碼:

這是一個最簡單不過的類,當(dāng)我們使用的時候直接new出來一個User對象即可。因為這個類是我們自己定義的,所以在使用的時候我們知道User有兩個字段name和age,還有無參和有參構(gòu)造方法,另外的test方法我們也可以直接調(diào)用(因為其是public)。

現(xiàn)在出現(xiàn)一個問題,如果這個user類不是我們自己定義的,我們從外部看不到里面有什么東西,而且我們又想去知道內(nèi)部長什么樣,比如說有幾個字段、方法、構(gòu)造方法、共有還是私有的等等,這時候該怎么辦呢?這時候java語言在設(shè)計的時候為我們提供了一個機(jī)制,就是反射機(jī)制,他能夠很方便的去解決我們的問題。

二、深入分析java反射機(jī)制

1、獲取Class類

在java中萬事萬物皆對象,User user=new User()一行代碼我們知道了user是User類的實例對象,通過Student stu=new Student()我們知道了stu是Student的實例對象,但是我們想過沒,User和Student又是誰的對象呢?沒錯就是Class類的實例對象。那這個Class類是什么東西,內(nèi)部長什么樣子呢?這時候我們很自然的聯(lián)想到使用反射機(jī)制。使用反射機(jī)制就可以獲取到這個class。

這里有三種方式可以獲取這個Class,我們來看一下代碼:

上面的c1、c2、c3都是Class類的實例,表示的都是User類。

當(dāng)然,不僅僅是User這些類,對于基本數(shù)據(jù)類型甚至是包括void我們也可以使用這個方法。

現(xiàn)在就可以直接創(chuàng)建User類的實例了。

User user=(User)c1.getInstance();

現(xiàn)在我們對反射機(jī)制中獲取Class類的方法進(jìn)行一個總計

2、獲取類的方法

現(xiàn)在通過反射看一下User類內(nèi)部的樣子,打印一下(把這個操作封裝在了一個方法中):

下面我們把我們的User類傳進(jìn)去,打印一下。

我們總結(jié)一下反射方法。

3、獲取類的屬性

(1)獲取所有屬性

上面有兩種獲取屬性的方法。重點是for循環(huán)。我們來測試一下

直接就會輸出我們的字段類型和名稱。

(2)獲取指定屬性

在這里我們的User類中name、age字段增加getter和setter方法

然后我們測試一下

在這里,我們在printFieldMsgBySelf方法中通過反射重新設(shè)置了age年齡的值,輸出之后已成功更改。

4、獲取類的構(gòu)造方法

然后我們同樣的測試一下

跟我們之前的構(gòu)造方法一樣。

5、獲取User類的父類和接口

我們在這里定義一個Human類(里面什么也沒有),然后定義一個UserInterface接口,讓User繼承它就好了。

然后我們在Test中去測試一下就可以了,測試方法很簡單,我們只需要調(diào)用這個方法就可以。

以上就是深圳達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對“Java實戰(zhàn)項目在線培訓(xùn)課程之Java反射機(jī)制”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹(jǐn)防上當(dāng)。