用反射调用静态方法

用反射调用静态方法

  1. 先获取到该方法的参数,
  2. 通过方法名及参数再次找到该方法
  3. invoke调用方法,传参
  4. 方法执行完毕,输出打印
public static void main(String[] args) throws NoSuchMethodException,
   SecurityException, IllegalAccessException,
   IllegalArgumentException, InvocationTargetException {
  Class c = String.class;
  Method[] methods = c.getMethods();
  for (Method method : methods) {
   if (method.getName().equals("join")) {
    System.out.println(method.getName() + "\t参数:"
      + Arrays.toString(method.getParameters()));
   }
  }
  // 反射获取方法
  Method method = c.getMethod("join", java.lang.CharSequence.class,
    java.lang.Iterable.class);
  // invoke调用方法
  String s = (String) method.invoke(null, "-", new ArrayList() {
   {
    add("start");
    add("end");
   }
  });
  System.out.println(s);
 }

用反射调用静态方法_第1张图片

你可能感兴趣的:(IO与反射)