java反射-获取方法信息

例子代码如下:

package com.reflect;

import java.lang.reflect.Method;

public class ClassUtill {
    
    /*
     * 打印类的信息,包括类的成员函数,成员变量,
     * obj 该对象所属类的信息
     * */
    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();    //c.getDeclaredMethods()
        for(int i=0;i<ms.length;i++)
        {
            //得到方法的返回值类型的类类型
            Class returnType=ms[i].getReturnType();
            System.out.print(returnType.getName()+" ");
            //得到方法的名称
            System.out.print(ms[i].getName()+"(");
            //获取参数类型-->得到的是参数列表的类型的类类型
            Class[] paramTypes=ms[i].getParameterTypes();
            for (Class class1 : paramTypes) {
                
                System.out.print(class1.getName()+",");
            }
            System.out.println(")");
        }
    }
}

调用这个类:

package com.reflect;

public class ClassDemo2 {

    public static void main(String[] args) {

        String s="hello";
        ClassUtill.printClassMessage(s);
    }
}

执行效果:

原文地址:https://www.cnblogs.com/alsf/p/8245227.html