Java反射专题学习之获取方法的信息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32575047/article/details/85772618

今天给大家介绍的反射专题学习之获取类的方法信息:

我们来看一段学习的代码:

import java.lang.reflect.Method;

/**
 * @Description Java获取方法信息
 * @Date 2019/1/4 10:41
 * @Created by FLXH
 */
public class ClassUtil {

    /**
     * 此方法打印类的信息,信息包括类的成员函数,成员变量,名称等等
     */
    public static void printClassMessage(Object object) {
        //要获取类的信息,必须先获取此类(本质也是对象)的'类类型'(Class Type)
        Class c = object.getClass();
        //1.获取此类的名称,并打印
        System.out.println("类的名称是: " + c.getName());
        //2.获取此类的成员函数 也就是成员方法;一个成员方法就是一个Method对象
        Method[] ms = c.getMethods();
        for (Method m : ms) {
            //得到方法的返回值类型,并打印
            Class returnType = m.getReturnType();
            System.out.print(returnType.getName() + " ");
            //得到成员方法的名称并打印
            System.out.print(m.getName() + "(");
            //获取参数类型名称-->得到的是参数列表的类型的'类类型' 比如:参数类型是int 那么获取到的
            //就是int,参数类型是String,那么就是java.lang.String(注意:有可能有多个参数)并打印
            Class[] paramTypes = m.getParameterTypes();
            for (Class paramType : paramTypes) {
                System.out.print(paramType);
            }
            System.out.println(")");
        }
    }
}

 从上面的一些代码可以得到:
1.通过反射的方式用对象获取类名是:

object.getClass().getName();

2.获取此类 (类就是对象,这里指obejct,下同)的成员函数(成员方法)

 Method[] ms = c.getMethods();

 3.一个类(对象)拥有很多的成员方法,我们可以遍历方法的时候求出每个方法的返回值类型,代码如下:

for (Method m : ms) {
            //得到方法的返回值类型,并打印
            Class returnType = m.getReturnType();
            System.out.print(returnType.getName() + " ");
        }

 4.每个成员方法有可能会拥有入参,参数就肯定会有类型,那么我们求出方法入参的类型就使用下面的代码:

 for (Method m : ms) {
            Class[] paramTypes = m.getParameterTypes();
            for (Class paramType : paramTypes) {
                System.out.print(paramType);
            }
            System.out.println(")");
        }

 介绍的就是通过反射获取类以及类的成员方法等相关方法,以理解为主,下期再见!

猜你喜欢

转载自blog.csdn.net/qq_32575047/article/details/85772618