首页 > 编程 > Java > 正文

Java反射机制总结学习--获取类的信息

2019-11-06 06:49:39
字体:
来源:转载
供稿:网友
public class ClassUtil { public static void PRintClassMessage(Object object){ Class c = object.getClass(); System.out.println("类的名称是:"+c.getName()); /* * 一个成员方法就是一个Method对象 * getMethods方法 是获取所有public类型的方法,包括从父类继承而来的 * getDeclaredMethods获取的是所有该类自己声明的方法,不管访问权限 */ Method[] ms = c.getMethods();// c.getDeclaredMethods(); for (int i = 0; i < ms.length; i++) { //得到方法的返回值类型的类类型,String.class这种形式的 Class returnType = ms[i].getReturnType(); //获取返回值名称 System.out.print(returnType.getName()+" "); //方法名称 System.out.print(ms[i].getName()+"("); //获取该方法的参数类型的类类型,String.class,int.calss这种形式的 Class[] paramTypes = ms[i].getParameterTypes(); for (Class type : paramTypes) { System.out.print(type.getName()+","); } System.out.println(")"); } //接下来获取成员变量 /*Field类封装了成员变量的操作 * getFields()获取所有public的成员变量 * getDeclaredFields获取所有声明的成员变量 */// Field[] fls = c.getFields(); Field[] fls = c.getDeclaredFields(); for (Field field : fls) { //获取成员变量的类的类类型 Class fieldType = field.getType(); //获取成员变量的类型的名称 String typeName = fieldType.getName(); //得到成员变量的名称 String fieldName = field.getName(); System.out.println(typeName+" "+fieldName); } } //获取构造方法的信息 public static void getConstructorMessage(Object object){ Class c = object.getClass(); /* * 构造函数也是对象Constructor * java.lang.Constructor封装了构造函数信息 * getConstructors获取所有public类型的构造函数 * */// Constructor[] cs = c.getConstructors(); Constructor[] cs = c.getDeclaredConstructors(); for (Constructor constructor : cs) { //构造方法名称 System.out.print(constructor.getName()+"("); Class[] params = constructor.getParameterTypes(); for (Class class1 : params) { System.out.print(class1.getName()+","); } System.out.println(")"); } }}public class ClassDemo2 { public static void main(String[] args) { //传入一个String类型的对象,然后,就可以获取String类型的所有的累的信息 String s = "hello";// ClassUtil.printClassMessage(s); ClassUtil.getConstructorMessage(s); }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表