Java反射机制

 

/**

 * 功能:java的反射机制

 * 可以检测到你说定义的类型里面包括的有多少种方法,方法的名字是什么,返回值是什么等

 * 这样一系列信息。都可以得到(说白了就是,通过放射机制我们可以拿到一个类的很多很多机制,提高代码的重用率,增加安全性)

 * 作者:徐守威

 *

 */

package com.test1;

 

import java.lang.reflect.Method;

 

public class T2 {

 

   /**

    * @param args

    */

   public static void main(String[] args) {

      // TODO Auto-generated method stub

      //Gen<String> gen1=new Gen<String>("xushouwei");

      //Gen<Integer> gen1=new Gen<Integer>(888888);

      Gen<Bird> gen1=new Gen<Bird>(new Bird());

      gen1.showTypeName();

   }

 

}

//定义一个鸟类

class Bird

{

   public void test1()

   {

      System.out.println("Jasxu");

   }

   public void count(int a,int b)

   {

      System.out.println(a+b);

   }

}

//定义一个类

class Gen<T>//这里的T就可以表示任意一个你定义好的数据类型

{

   private T o;

   //构造函数

   public Gen(T a)

   {

      this.o=a;

   }

   //得到T的类型名称

   public void showTypeName()

   {

      System.out.println("T的类型是:"+o.getClass().getName());

      //通过反射机制,我们可以得到T这个类型的很多信息(比如得到它的成员函数名)

      Method []m=o.getClass().getDeclaredMethods();

      //遍历,打印

      for(int i=0;i<m.length;i++)

      {

        System.out.println(m[i].getName());

      }

   }

}

原文地址:https://www.cnblogs.com/Jasxu/p/Reflect.html