可以通过某个类或者对象获得当前类的信息
1 2 3 |
Class c = Person.Class; // 通过具体类获得Class类 Class c = p.getClass(); // 通过具体对象获得Class类 Person p2 = (Person)c.newInstance();//通过Clsss类获取实例化对象 |
获的 c 的属性
1 2 3 4 5 6 7 8 9 10 |
Field f = c.getField(); //返回一个公共的属性的对象 Field[] fs = c.getFields(); //返回一个公共的属性的对象的数组 Field df = c.getDeclaredField(); //返回一个所有的属性的对象 Field[] dfs = c.getDeclaredFields(); //返回一个所有的属性的对象的数组 Field 的方法,设一个Field对象为f int mod = f.getModifies() //获取修饰符代码,返回类型为int String smod = Modifier.toString(mod)//获得修饰符名称,返回类型为String Class c1 = f.getType(); //获取该属性的类型,返回类型Class String name = f.getName(); //获取该属性名称,返回类型Stirng |
获得c的构造器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Constructor con = c.getConstructors(); //返回一个公共构造器 Constructor[] cons = c.getDeclareConstructors(); //返回所有公共构造器的数组 Constructor con = c.getConstructors(); //返回一个所有构造器 Constructor[] cons = c.getDeclareConstructors(); //返回一个所有构造器的数组 实例化构造器 //传参要传形参的所属的类 Constructor[] con = c.getConstructors(Stirng.class, int.class); //调用获得的构造方法 con.invoke(参数1, 参数2); 方法修饰符 int mod = con.getModifies() //获取修饰符代码,返回类型为int String smod = Modifier.toString(mod)//获得修饰符名称,返回类型为String 参数的获得 Class[] cs = con.getParameterType() //获得形参数组,返回类型为Class数组 |
获得c的普通方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Method con = c.getMethod(); //返回一个公共方法 Method[] cons = c.getDeclareMethods(); //返回所有公共方法的数组 Method con = c.getMethod(); //返回一个所有方法 Method[] cons = c.getDeclareMethods(); //返回一个所有方法的数组 实例化方法 f //传参要传形参的所属的类 Method[] con = c.getConstructors("方法名",Stirng.class, int.class); //调用获得的方法 con.invoke(类的实例,参数1, 参数2); 方法修饰符 int mod = f.getModifies() //获取修饰符代码,返回类型为int String smod = Modifier.toString(mod)//获得修饰符名称,返回类型为String 返回类型 Class c = f.getreturnType(); //获得返回类型的类,返回类型为classs 参数的获得 Class[] cs = f.getParameterType() //获得形参数组,返回类型为Class数组 |