微信后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
5.3 KiB

package com.ynxbd.common.helper.common;
//
//import javassist.ClassPool;
//import javassist.CtClass;
//import javassist.CtMethod;
//import javassist.Modifier;
//import javassist.bytecode.CodeAttribute;
//import javassist.bytecode.LocalVariableAttribute;
//import javassist.bytecode.MethodInfo;
//import weixin.popular.bean.user.User;
//
//public class MethodUtil {
//
// public String test() {
// return "hello";
// }
//
// public static void test2(String a, String b, User user) {
// System.out.println(a);
// System.out.println(b);
// }
//
// public static void test03(String name, Object... args) {
// System.out.println(name);
// for (Object o : args) {
// System.out.println(o);
// }
// }
//
// public static void main(String[] args) {
//// ArrayList<Object> objects = new ArrayList<>();
////// objects.add("123");
////// objects.add(true);
//// test03("123", objects);
// String[] names = getMethodParams("", "getData");
// System.out.println(names);
// if (names == null) return;
//// System.out.println(names);
// for (String name : names) {
// System.out.println(name);
// }
// }
//
//
// /**
// * 根据类名和方法名,获取方法的参数名
// *
// * @param clazzName 类名
// * @param methodName 方法名
// * @return 参数名数组
// */
// public static String[] getMethodParams(String clazzName, String methodName) {
// try {
// ClassPool pool = ClassPool.getDefault();
// CtClass cc = pool.get(clazzName);
// CtMethod cm = cc.getDeclaredMethod(methodName);
// MethodInfo methodInfo = cm.getMethodInfo();
// CodeAttribute codeAttribute = methodInfo.getCodeAttribute();
// String[] params = new String[cm.getParameterTypes().length];
// LocalVariableAttribute attr = (LocalVariableAttribute) codeAttribute.getAttribute(LocalVariableAttribute.tag);
// if (attr != null) {
// int pos = Modifier.isStatic(cm.getModifiers()) ? 0 : 1;
// for (int i = 0; i < params.length; i++) {
// params[i] = attr.variableName(i + pos);
// }
// return params;
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// return null;
//
// }
//初始化
// private void getVar() throws IntrospectionException, IllegalAccessException, InstantiationException, CannotCompileException {
// Class<? extends BaseServlet> clazz = this.getClass();
// ClassPool pool = ClassPool.getDefault();
// CtClass ctClass = pool.makeClass(StringUtils.capitalize(clazz.getName()));
// map = new HashMap<>();
// Field[] fields = clazz.getDeclaredFields();
// for (Field f : fields) {
// if (f.isAnnotationPresent(RequestParam.class)) {
// RequestParam requestParam = f.getAnnotation(RequestParam.class);
// // 注解值c
// Class<?> type = f.getType();
//// System.out.println(f.getType());
//// System.out.println(f.getGenericType());
//// Object o = type.newInstance();
//// Class<? extends Type> aClass = f.getGenericType().getClass();
// System.out.println("++++++++++++++++++++");
// String annotationVal = requestParam.value();
// System.out.println(annotationVal);
// // 属性名
// CtField make = CtField.make(String.format(fieldTemplate, f.getType().getName(), f.getName()), ctClass);
//
// String setMethodName = SETTER_STR + StringUtils.capitalize(f.getName());
// String getMethodName = GETTER_STR + StringUtils.capitalize(f.getName());
//
// CtMethod setter = CtNewMethod.setter(setMethodName, make);
// ctClass.addMethod(setter);
// CtMethod getter = CtNewMethod.getter(getMethodName, make);
// ctClass.addMethod(getter);
//
// System.out.println(setter.toString());
// System.out.println(getter.toString());
// System.out.println("===============");
//
// String fieldName = f.getName();
//
//// PropertyDescriptor descriptor = new PropertyDescriptor(fieldName, clazz); //给一个属性,获取值
//// Method getMethod = descriptor.getReadMethod(); //相当于为上面声明的字段设置get方法
//// Method setMethod = descriptor.getWriteMethod(); //为上面声明的字段设置set方法(又称内省)
//// getMethod.setAccessible(true);
//// setMethod.setAccessible(true);
//// System.out.println(setMethod.toString());
//// System.out.println(getMethod.toString());
// if (annotationVal.equals("")) {
// map.put(annotationVal, new BaseRequest(annotationVal, fieldName, setter, getter));
// } else {
// map.put(fieldName, new BaseRequest(fieldName, fieldName, setter, getter));
// }
// }
// }
// }
//}