反射-获取方法信息

测试类:
public
class Test { public static void main(String[] args) { ClassDemo3 classDemo3 = new ClassDemo3(); String string = "hello"; printClassMessage(string); } }

package classes;


import com.sun.org.apache.xpath.internal.SourceTree;

import java.lang.reflect.Method;

public class ClassDemo3 {
    /*打印类的信息,包括成员变量,和方法*/
    public static void printClassMessage(Object obj) {
        //获取类的信息,首先要获得类的类类型
        Class c = obj.getClass();//传递的是哪个子类对象,c就是盖子类的类类型
        //获取类的名称
        System.out.println("参数类的名称是: " + c.getName());
        /*Method 类, 方法的对象, 一个成员变量方法就是一个Method对象
        getMethods()方法获取的是所有的public方法,包括父类继承而来的
        getDeclaredMethods() 获取的是所有该类自己声明的方法,不问访问权限*/
        Method[] ms = c.getMethods();
        for(Method m : ms){
            //得到方法的返回值的类类型
            Class returnType = m.getReturnType();
            System.out.print("returnType : " + returnType.getName() + " <--");
            //得到方法名
            System.out.println("方法名:" + m.getName());

            //获取参数类型
            Class[] paramTypes = m.getParameterTypes();
            for(Class classs : paramTypes){
                System.out.println("参数列表中的参数类类型 : " + classs.getName());
            }
        }

    }

}

 

 

 

posted @ 2017-10-25 17:20  诺-诺  阅读(211)  评论(0编辑  收藏  举报