java获取方法信息
//只要在类里面声明的都有类类型
public static void pringClassMessage(Object object){
//要获取类的信息,首先要获取类的类型
Class c=object.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.println(returnType.getName());
//得到方法名
System.out.println(ms[i].getName()+"(");
//获取参数类型-->得到的是参数列表的类型的类类型
Class[] paramType=ms[i].getParameterTypes();
for (Class class1: paramType) {
System.out.println(class1.getName()+",");
}
System.out.println(")");
}
}
}
《============================================》
JAva获取成员变量构造函数的信息
Java反射机制——获取成员变量&构造函数
一、成员变量是java.lang.reflect.Field的对象
1、Field类封装了关于成员变量的操作
2、Field[] fs = c.getFields()方法获取所有public的成员变量Field[]信息
3、c.getDeclaredFields获取的是该类自己声明的成员变量信息
4、field.getType()获得成员类型的类类型
5、field.getName()获得成员的名称
二、构造函数是java.lang.Constructor类的对象
1、通过Class.getConstructor()获得Constructor[]所有公有构造方法信息
2、建议getDeclaredConstructors()获取自己声明的构造方法
3、Constructor.getName():String
4、Constructor.getParameterTypes():Class[]
成员变量也是对象,是java.lang.reflect.Field的对象;
foreach循环其实和for循环功能相同,for(Field field:fs){} 就相当于 for (int i = 0; i < fs.size(); i++) { Field field = fs.get(i);}
来源慕课网
不经一番彻骨寒,哪有梅花扑鼻香?