java 的反射機制與泛型(傻瓜版)

java 的反射機制與泛型

 先不要看標題,覺得很高大上,其實我有我的理解。

通俗點,舉個例子:比如有一個食堂,專門生產食物的,按照正常的道理,我們人類可以去吃飯,狗類也可以,貓類也可以去吃飯的。但是如果沒有反射與泛型,會怎樣? 我們必須給人類造一個食堂,給狗類造一個食堂,給貓類造一個食堂等等。。。。等到我們造完,估計可愛的小貓咪已經餓死了吧哈哈~~~~ 但是其實吃飯這件事是很簡單的,我們何不共用一個食堂呢?於是就有了泛型,你們誰都可以來吃飯的。但是問題又來了,
人有筷子吃飯,狗用狗盆,貓用盤子,咋辦?我們需要它們每個類型的吃飯方法呀~,於是我們就可以用反射機制,調用它們方法,知道每一個類型的方法,然後大家就和睦共存了哈哈哈

      private class 人類食堂 
    {
       public String getString (people p)
       {
          return p.getEat();
       }
    }

     private class 狗類食堂 
    {
       public String getString (Dog d)
       {
          return d.getPengzi();
       }
    }

  private class 貓類食堂 
    {
       public String getString (Cat c)
       {
          return c.getPanzi();
       }
    }

以上就是平時寫的方法。
下面是關鍵

  private Class<T> 動物大食堂 
  {
  //Class<T>(某類型的class),扔過來的實例化對象,獲取方法
      public String Eat (Class<T> clazzT 某動物,String 吃飯方法名)
       {
         //getMethod第一個參數是方法名
        Method method = clazz.getMethod(吃飯方法名);//獲取方法
        return method.invoke(某動物,new Object[0]));//讓某動物吃飯,後面跟的是方法傳的參數可以不寫
       }

  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章