获取方法信息常用API
1. Method类,方法对象
getMethods()方法获取的是所有的public的函数,包含父类继承而来的
getDeclaredMethods获取的是所有该类自己声明的方法,不问访问权限
Method[] ms = c.getMethods();//c.getDeclaredMethods();
2. 获取方法返回值类型
Class returnType = ms[i].getReturnType();
3. 获取方法名
ms[i].getName()
4. 获取方法参数的类型
Class[] paramTypes = ms[i].getParameterTypes();
5. Demo
public class ClassUtil {
public static void printClassMessage(Object obj) {
Class c = obj.getClass();
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.println(returnType.getName()+"");
//获取方法名
System.out.print(ms[i].getName()+"(");
//获取方法参数的类型
Class[] paramTypes = ms[i].getParameterTypes();
String paramString = "";
int j = 0;
for (Class class1 : paramTypes) {
if(j==paramTypes.length-1) {
paramString +=class1.getClass();
break;
} else {
paramString +=class1.getClass()+",";
}
j++;
}
System.out.print(paramString);
System.out.print(")");
System.out.println();
}
}
}