public static void main(String[] args) throws Exception {Class pClass = Class.forName("jdj.Person");//遍历整个控制器Constructor[] constructors=pClass.getDeclaredConstructors();for(Constructor con:constructors) {System.out.println(con);}//通过控制器创建对象Constructor con_1=pClass.getConstructor(String.class);con_1.setAccessible(true); //private类都需要进行暴力反射才可以使用Person p1=(Person) con_1.newInstance("aaa");//添加基本类型的数据Field nameField=pClass.getDeclaredField("name"); //姓名nameField.setAccessible(true);nameField.set(p1, "张三");System.out.println(nameField.get(p1));Field ageField=pClass.getDeclaredField("age"); //年龄ageField.set(p1, 45);System.out.println(ageField.get(p1));Field sexField=pClass.getDeclaredField("sex"); //性别sexField.set(p1, '男');System.out.println(sexField.get(p1));Field heightField=pClass.getDeclaredField("height");heightField.set(p1, 175);System.out.println(heightField.get(p1));//添加方法类型Method method1=pClass.getMethod("run");method1.invoke(p1);System.out.println(method1);Method method2=pClass.getMethod("run",String.class);method2.invoke(p1,"李逵");System.out.println(method2);Method method3=pClass.getDeclaredMethod("flay",String.class);method3.setAccessible(true);method3.invoke(p1, "松江");System.out.println(method3);//注意: public类的方法 getMethod和getDeclaredMethod两种都可以调取 private只能使用getDeclaredMethod调取}
以下为要调用的person类中的方法 控制器 基本数据变量
private String name;public Integer age;Character sex;protected Integer height;private Person() {}public Person(String name,Integer age,Character sex,Integer height ) {this.name = name;this.age = age;this.sex = sex;this.height = height;}public Person(String name) {this.name = name;}//在java当中 方法名和参数列表public void run() {System.out.println("人跑的很快");}public void run(String name) {System.out.println(name+"人跑的很快");}private void flay(String name) {System.out.println(name+"会飞");}Integer getAge() {return age;}public void hhh(Integer age,Character sex) {System.out.println(age + " " + sex);}