反射

1.Class類(lèi)
  1) 在面向?qū)ο蟮氖澜缋铮f(wàn)事萬(wàn)物皆對(duì)象。(java語(yǔ)言中,靜態(tài)的成員、普通數(shù)據(jù)類(lèi)型除外)
   類(lèi)是不是對(duì)象呢?類(lèi)是(哪個(gè)類(lèi)的對(duì)象呢?)誰(shuí)的對(duì)象呢?
   類(lèi)是對(duì)象,類(lèi)是java.lang.Class類(lèi)的實(shí)例對(duì)象
  2)這個(gè)對(duì)象到底如何表示
  3 )Class.forName("類(lèi)的全稱(chēng)")
       不僅表示了,類(lèi)的類(lèi)類(lèi)型,還代表了動(dòng)態(tài)加載類(lèi)
       請(qǐng)大家區(qū)分編譯、運(yùn)行
       編譯時(shí)刻加載類(lèi)是靜態(tài)加載類(lèi)、運(yùn)行時(shí)刻加載類(lèi)是動(dòng)態(tài)加載類(lèi)
  4)基本的數(shù)據(jù)類(lèi)型
      void關(guān)鍵字  都存在類(lèi)類(lèi)型 
  5)Class類(lèi)的基本API操作
  
2.方法的反射
1)如何獲取某個(gè)方法
    方法的名稱(chēng)和方法的參數(shù)列表才能唯一決定某個(gè)方法
2)方法反射的操作
   method.invoke(對(duì)象,參數(shù)列表)
3)為什么要用方法的反射
    why?指定方法名稱(chēng)調(diào)用方法
    舉個(gè)實(shí)際應(yīng)用的案例  ---->通過(guò)標(biāo)準(zhǔn)JavaBean的屬性名獲取其屬性值
    BeanUtil類(lèi)
4)通過(guò)Class,Method來(lái)認(rèn)識(shí)泛型的本質(zhì)
public class MethodDemo4 {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        
        ArrayList<String> list1 = new ArrayList<String>();
        list1.add("hello");
        //list1.add(20);錯(cuò)誤的
        Class c1 = list.getClass();
        Class c2 = list1.getClass();
        System.out.println(c1 == c2);
        //反射的操作都是編譯之后的操作
        
        /*
         * c1==c2結(jié)果返回true說(shuō)明編譯之后集合的泛型是去泛型化的
         * Java中集合的泛型,是防止錯(cuò)誤輸入的,只在編譯階段有效,
         * 繞過(guò)編譯就無(wú)效了
         * 驗(yàn)證:我們可以通過(guò)方法的反射來(lái)操作,繞過(guò)編譯
         */
        try {
            Method m = c2.getMethod("add", Object.class);
            m.invoke(list1, 20);//繞過(guò)編譯操作就繞過(guò)了泛型
            System.out.println(list1.size());
            System.out.println(list1);
            /*for (String string : list1) {
                System.out.println(string);
            }*///現(xiàn)在不能這樣遍歷
        } catch (Exception e) {
          e.printStackTrace();
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容