Java反射機(jī)制系列初識(shí)JavaReflection

字號(hào):

Java 反射機(jī)制是指Java程序可以在執(zhí)行期載入,探知,使用編譯期間完全未知的classes.這句話可能有點(diǎn)難以理解,我們可以通過一個(gè)例子來看。在Java程序中我們經(jīng)常會(huì)用到這樣一條語句來創(chuàng)建一個(gè)對象。Date date = new Date();在這條語句中date的類型(Java.util.Date)在編譯時(shí)已經(jīng)確定。那么,考試.大提示有沒有辦法使我們把對象類型的確定時(shí)間由編譯轉(zhuǎn)到運(yùn)行,答案是肯定的。這就是Java反射機(jī)制所提供的便利。而且它不單單可以生成對象還可以獲取Field,對Field設(shè)值,及調(diào)用方法等。
    談及Java反射機(jī)制就一定要知道一個(gè)名為“Class”的類,它是Java反射機(jī)制的基礎(chǔ)。“Class”和其它類一樣繼承于Object類,它的實(shí)例對象用來描述Java運(yùn)行時(shí)的一種類型,接口,或者原始類型(比如int)?!癈lass”的實(shí)例要由JVM創(chuàng)建,它沒有公用的構(gòu)造方法。下面我們來看一下如何獲得"Class"類實(shí)例。
    主要有三種方法。
    一、通過Class類的靜態(tài)方法forName獲取。Class cla = Class.forName("java.lang.String");
    二、通過。Type或。class屬性獲得。Class cla = String.class;Class cla1 = int.Type;
    三、通過實(shí)例變量的getClass方法獲得。String s = ""; Class cla = s.getClass();如上所示實(shí)例對象cla就是對String類型的描述,通過它我們就可以創(chuàng)建一個(gè)String實(shí)例,并調(diào)用其中的方法。