反射_通过反射获取无参无返回值成员方法并使用

短命女 2022-06-17 02:40 266阅读 0赞
  1. package cn.itcast_04;
  2. import java.lang.reflect.Constructor;
  3. import java.lang.reflect.Method;
  4. /*
  5. * 需求:通过反射获取成员方法
  6. */
  7. public class ReflectDemo {
  8. public static void main(String[] args) throws Exception {
  9. // 获取字节码文件对象
  10. Class c = Class.forName("cn.itcast_01.Person");
  11. // 获取所有的方法
  12. // Method[] methods = c.getMethods();//获取自已的包括父亲的公共方法
  13. // Method[] methods = c.getDeclaredMethods();// 获取自已的所有方法
  14. // for (Method method : methods) {
  15. // System.out.println(method);
  16. // }
  17. // 获取无参构造方法并创建对象
  18. Constructor con = c.getConstructor();
  19. Object obj = con.newInstance();
  20. /*
  21. * Person p = new Person(); p.show();
  22. */
  23. // 获取单个方法并使用
  24. // public void show()
  25. // public Method getDeclaredMethod(String
  26. // name,Class<?>...parameterTypes)
  27. // 第一个参数表示的方法名,第二个参数表示的是方法的参数的class类型
  28. Method m1 = c.getDeclaredMethod("show");
  29. // obj.m1()//错误
  30. // public Object invoke(Object obj, Object... args)
  31. // 返回值是Object接收,第一个参数表示对象是谁,第二个参数表示调用该方法的实际参数
  32. m1.invoke(obj);// 调用obj方法m1方法
  33. }
  34. }

发表评论

表情:
评论列表 (有 0 条评论,266人围观)

还没有评论,来说两句吧...

相关阅读