zoukankan      html  css  js  c++  java
  • 接口代理

    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    
    public class FacadeProxy implements InvocationHandler {
        @Override
        public Object invoke(Object proxy, Method method, Object[] args)
                throws Throwable {
            System.out.println("接口方法调用开始");
            //执行方法
            System.out.println("method toGenericString:"+method.toGenericString());
            System.out.println("method name:"+method.getName());
            System.out.println("method args:"+(String)args[0]);
            System.out.println("接口方法调用结束");
            return "调用返回值";
        }
    
        @SuppressWarnings("unchecked")
    	public static <T> T newMapperProxy(Class<T> mapperInterface) {
            ClassLoader classLoader = mapperInterface.getClassLoader();
            Class<?>[] interfaces = new Class[]{mapperInterface};
            FacadeProxy proxy = new FacadeProxy();
            return (T) Proxy.newProxyInstance(classLoader, interfaces, proxy);
          }
    
        public static void main(String[] args) {
        	IHello hello = FacadeProxy.newMapperProxy(IHello.class);
        	System.out.println(hello.sayHello("hello"));
    	}
    }
    interface IHello{
    	String sayHello(String a);
    }
    

      

  • 相关阅读:
    springcloud-EurekaServer模块
    springcloud-消费者订单模块
    springboot配置热部署
    swagger依赖和配置类
    springcloud-支付模块构建
    jQuery基础
    JavaScript之实例
    JavaScript之DOM
    JavaScript之BOM
    JavaScript函数与对象
  • 原文地址:https://www.cnblogs.com/zhuxiansheng/p/10024108.html
Copyright © 2011-2022 走看看