Java反射机制-用代码讲话

Java反射机制---用代码说话

java反射机制主要用途:可以获到一个类的很多信息,甚至返回值,修饰符等。。

package com.test;

import java.lang.reflect.Method;

public class test2 {
    public static void main(String[] args) {
        Gen<Bird> gen1=new Gen<Bird>(new Bird());
        gen1.showTypeName();
    }
}
//定义一个鸟类
class Bird{
    public void test(){
        System.out.println("I am a bird");
    }
    public void count(int a,int b){
        System.out.println("和为:"+a+b);
    }
}
//创建一个类,这个T是我认为的一种类型,但是不知道是什么类型,这就是泛型
class Gen<T>{
    private T o;
    public Gen(T a){
        o=a;
    }
    //得到T的类型名称
    public void showTypeName(){
        System.out.println("T类型是:"+o.getClass().getName());
        //通过反射机制,我们可以得到T这个类型的很多信息
        //比如说:成员函数名称,返回类型,成员变量等
        Method[] m=o.getClass().getDeclaredMethods();
        //打印method的名字,但是还可以打印很多,修饰符,参数个数,等等。。这个只打印名字
        for(int i=0;i<m.length;i++){
            System.out.println("第"+(i+1)+"个成员方法的名字:"+m[i].getName());
     }
    }
}
输出结果:

T类型是:com.test.Bird
第1个成员方法的名字:count
第2个成员方法的名字:test