序言

      在學習java基礎時,由于學的不扎實,講的實用性不強,就覺得沒用,很多重要的知識就那樣一筆帶過了,像這個馬上要講的反射機制一樣,當時學的時候就忽略了,到后來學習的知識中,很多東西動不動就用反射,所以回過頭來把這個給重新補一下,自己欠下的債,遲早是要還的。

                                      ---WH

一、什么是反射?

    在運行狀態(tài)中,對于任意一個類,都能夠獲取到這個類的所有屬性和方法,對于任意一個對象,都能夠調用它的任意一個方法和屬性(包括私有的方法和屬性),這種動態(tài)獲取的信息以及動態(tài)調用對象的方法的功能就稱為java語言的反射機制。通俗點講,通過反射,該類對我們來說是完全透明的,想要獲取任何東西都可以。

    想要使用反射機制,就必須要先獲取到該類的字節(jié)碼文件對象(.class),通過字節(jié)碼文件對象,就能夠通過該類中的方法獲取到我們想要的所有信息(方法,屬性,類名,父類名,實現(xiàn)的所有接口等等),每一個類對應著一個字節(jié)碼文件也就對應著一個Class類型的對象,也就是字節(jié)碼文件對象。

    獲取字節(jié)碼文件對象的三種方式。

       1、Class clazz1 = Class.forName("全限定類名");  //通過Class類中的靜態(tài)方法forName,直接獲取到一個類的字節(jié)碼文件對象,此時該類還是

網友評論