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());
}
}
}