在上篇文章中,我們提及到了class.forName()這個代碼,那麼這是個什麼呢?我們為什麼要使用這種方式來加載Driver驅動呢?其實這就是java中的類加載器和反射,下面我們一起來看看。
反射機制
java的反射機制的目的就是要增加程序的靈活性,它能夠有效的避免將程序寫死在我們的代碼中。
舉個簡單的例子:
- 不使用反射:實我們例化一個 A()對象, 先不去使用java的反射,new一個A(),這時候,我們如果想要去實例化別的類, 那麼必須去修改源代碼,並重新編譯。
- 使用反射: class.forName("A").newInstance(); 而且這個類描述我們可以寫到配置文件中,如 ***.xml配置文件, 這樣如果想實例化其他類,只要修改配置文件的"類描述"就可以了實現,不需要再次去修改我們的代碼並編譯。
這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。
獲取Class對象的3種方式
三種方式的比較:
這裡我們可以明顯的看到,前兩種方式,我們必須明確Person類型。
而第三種方式是,我們知道這種類型的字符串就行.這種擴展更強.我不需要知道你的類.我只提供字符串,按照配置文件加載就可以了。
反射獲取構造方法
反射獲取成員變量
放射獲取成員方法
上面就是我們對Java中的反射的簡單舉例,明天我們將對java中同樣重要的類加載器進行詳細的說明。如果有幫助的大家,關注支持一下喲~
感謝堅持關注的朋友
世界很大,幸好有你
歡迎在評論區留下你的問題或困惑,我將每天與你分享我的觀點和心得。
聚焦最新科技諮訊,探尋未來智能領域,我是女陶。
閱讀更多 女陶愛柚子 的文章