反射 invoke方法用来运行动态地调用某个实例里的方法

//getclass返回Class类型的对象
Class service = this.formCheckService.getClass();
// 一个数组的Class对象识别方法的形参类型,在声明的顺序
Class[] parameterTypes = { String.class, HttpServletRequest.class };
//方法返回一个Method对象,它反映此Class对象所表示的类或接口的指定已声明方法
methodName就是service层里的方法,通过其他形式得到后放在参数中
  Method method = service.getDeclaredMethod(methodName, parameterTypes);
//invoke方法用来运行动态地调用某个实例里的方法
method.invoke(this.formCheckService, new Object[] { transformFormEncode(request.getParameter(paramName)), request });

transformFormEncode是一个返回的判断编码的方法
public String transformFormEncode(String str) {
  String temp = "";
  if ((str != null) && (!"".equals(str))) {
    try {
      temp = URLDecoder.decode(new String(str.getBytes("gbk"), "utf-8"), "utf-8");
    }
    catch (UnsupportedEncodingException e1) {
      e1.printStackTrace();
    }
  }
  return temp;
}

猜你喜欢

转载自blog.csdn.net/wqr111/article/details/121039063