Discuss / Java / 利用反射调用方法

利用反射调用方法

Topic source
public class Main {
       public static void main(String[] args) throws Exception {
              String name = "Xiao Ming";
              int age = 20;
              Person p = new Person();
              Method m1 = p.getClass().getDeclaredMethod("setName",String.class);
              Method m2 = p.getClass().getDeclaredMethod("setAge",int.class);
              m1.setAccessible(true);
              m2.setAccessible(true);
              m1.invoke(p, name);
              m2.invoke(p, age);
              System.out.println(p.getName()); // "Xiao Ming"
              System.out.println(p.getAge()); // 20
       }
}
class Person {
       private String name;
       private int age;
       public String getName() {
              return name;
       }
       public void setName(String name) {
              this.name = name;
       }
       public int getAge() {
              return age;
       }
       public void setAge(int age) {
              this.age = age;
       }
}



  • 1

Reply