版权声明:本文为博主原创文章,未经博主允许不得转载。 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(")");
}
介绍的就是通过反射获取类以及类的成员方法等相关方法,以理解为主,下期再见!