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 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 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 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)); // } // } // } // } //}