jdk动态代理
/*** 获取目标对象的代理对象* @param t 要代理的对象* @return 返回一个代理对象*/public static <T> T getProxy(T t){InvocationHandler h = new InvocationHandler(){/*** @param proxy 要代理的对象* @param method 对象的方法* @param args 对象的方法的参数* @return 返回的代理对象* @throws Throwable 外抛异常*/@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println(method.getName() + " 方法执行了 " + "参数是 " + Arrays.toString(args));System.out.println(" 结果是 " + method.invoke(t, args));return method.invoke(t, args);}};// 获取代理类的接口Class<?>[] interfaces = t.getClass().getInterfaces();// 获取代理类的类加载器//ClassLoader loader = t.getClass().getClassLoader();// proxy 为目标对象创建代理Object proxy = Proxy.newProxyInstance(MyFactory.class.getClassLoader(), interfaces, h);return (T) proxy;}
