寫在前面:
什么是java反射機制?我們又為什么要學它?
當程序運行時,允許改變程序結(jié)構(gòu)或變量類型,這種語言稱為動態(tài)語言。我們認為java并不是動態(tài)語言,但是它卻有一個非常突出的動態(tài)相關機制,俗稱:反射。
IT行業(yè)里這么說,沒有反射也就沒有框架,現(xiàn)有的框架都是以反射為基礎。在實際項目開發(fā)中,用的最多的是框架,填的最多的是類,反射這一概念就是將框架和類揉在一起的調(diào)和劑。所以,反射才是接觸項目開發(fā)的敲門磚!
一、Class類
什么是Class類?
在面向?qū)ο蟮氖澜缋?,萬事萬物皆是對象。而在java語言中,static修飾的東西不是對象,但是它屬于類。普通的數(shù)據(jù)類型不是對象,例如:int a = 5;
它不是面向?qū)ο?,但是它有其包裝類 Integer 或者分裝類來彌補了它。除了以上兩種不是面向?qū)ο?,其余的包括類也有它的面向?qū)ο?,類是java.lang.Class的實例化對象(注意Class是大寫)。也就是說:Class A{}
當我創(chuàng)建了A類,那么類A本身就是一個對象,誰的對象?java.lang.Class的實例對象。
那么這個對象又該怎么表示呢?
我們先看一下下面這段代碼: