一起來學大數據|Java中的反射機制(非常重要)

一起來學大數據|Java中的反射機制(非常重要)

在上篇文章中,我們提及到了class.forName()這個代碼,那麼這是個什麼呢?我們為什麼要使用這種方式來加載Driver驅動呢?其實這就是java中的類加載器和反射,下面我們一起來看看。

反射機制

java的反射機制的目的就是要增加程序的靈活性,它能夠有效的避免將程序寫死在我們的代碼中。

舉個簡單的例子:

  1. 不使用反射:實我們例化一個 A()對象, 先不去使用java的反射,new一個A(),這時候,我們如果想要去實例化別的類, 那麼必須去修改源代碼,並重新編譯。
  2. 使用反射: class.forName("A").newInstance(); 而且這個類描述我們可以寫到配置文件中,如 ***.xml配置文件, 這樣如果想實例化其他類,只要修改配置文件的"類描述"就可以了實現,不需要再次去修改我們的代碼並編譯。
一起來學大數據|Java中的反射機制(非常重要)

一起來學大數據|Java中的反射機制(非常重要)

這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。

一起來學大數據|Java中的反射機制(非常重要)

加載過程

獲取Class對象的3種方式

一起來學大數據|Java中的反射機制(非常重要)

獲取Class對象的3種方式

三種方式的比較

這裡我們可以明顯的看到,前兩種方式,我們必須明確Person類型。

而第三種方式是,我們知道這種類型的字符串就行.這種擴展更強.我不需要知道你的類.我只提供字符串,按照配置文件加載就可以了。

反射獲取構造方法

一起來學大數據|Java中的反射機制(非常重要)

構造方法

一起來學大數據|Java中的反射機制(非常重要)

創建對象

一起來學大數據|Java中的反射機制(非常重要)

實例

反射獲取成員變量

一起來學大數據|Java中的反射機制(非常重要)

反射獲取成員變量

一起來學大數據|Java中的反射機制(非常重要)

實例1

一起來學大數據|Java中的反射機制(非常重要)

實例2

放射獲取成員方法

一起來學大數據|Java中的反射機制(非常重要)

放射獲取成員方法

上面就是我們對Java中的反射的簡單舉例,明天我們將對java中同樣重要的類加載器進行詳細的說明。如果有幫助的大家,關注支持一下喲~

感謝堅持關注的朋友

一起來學大數據|Java中的反射機制(非常重要)

世界很大,幸好有你

歡迎在評論區留下你的問題或困惑,我將每天與你分享我的觀點和心得。

聚焦最新科技諮訊,探尋未來智能領域,我是女陶。


分享到:


相關文章: