1. 程式人生 > >對於反射作用的理解

對於反射作用的理解

最近在重溫反射的知識,收穫還是很多的,感覺知識就是在不同的時間去看會有更深的理解

在剛學反射時無論是什麼教材或者網上的資料都在講述著反射的重要性,但是我們學習過程中卻從來都用不到,相信很多朋友跟我一樣,經常會產生“反射到底有什麼用”的問題,我在重溫了反射的知識點後,終於有一點理解了反射的作用,想來跟大家分享一下我對於反射的看法。

1·、大家都知道反射又稱之為動態編譯,網上關於動態編譯的解釋很多,我的理解就是程式碼可以不用那麼死板了。

假如說現在我們有一個介面A,A有兩個實現類B和C,我們在編寫程式碼的過程中如果不用反射機制,就可能要將B、C的物件創建出來,以備後用,這還只是兩個實現類,加入實現類很多怎麼辦,這時就需要反射機制了,因為反射所用程式碼為Class.forName("類的全類名"),這個類的全類名我們就可以通過配置檔案傳入,而且是在需要時才傳入,使得程式碼變得靈活起來。

2、框架的底層大多使用了反射,這是為什麼?

學過框架的都知道框架基本是使用配置檔案來將我們的執行環境搭建好,這裡就是反射的經典運用,因為對於我們的專案,各種配置(包括資料庫連線,各種路徑等)都是不同的,所以就需要反射的機制來動態的獲取。

3、我們平常會用到反射嗎?

其實對於這個問題我相信大部分人都有過迷惑,因為反射除了在學習資料庫連線過程中使用了一下Class.forName()以外,好像基本就沒用過了。不過請你相信反射肯定是有用的,比如說對於框架底層原始碼的理解等。

總結:反射的作用很大,需要我們去理解它,可以讓我們更好的去閱讀框架的底層代