美文网首页
【日拱一卒】动态代理使用示例

【日拱一卒】动态代理使用示例

作者: 写代码的杰西 | 来源:发表于2020-08-17 20:36 被阅读0次
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    
    public class ProxyDemo {
        public static void main(String[] args) {
            HelloImpl hello = new HelloImpl();
            MyInvocationHandler myInvocationHandler = new MyInvocationHandler(hello);
            Hello o = (Hello) Proxy.newProxyInstance(HelloImpl.class.getClassLoader(), HelloImpl.class.getInterfaces(), myInvocationHandler);
            o.sayHello();
        }
    }
    
    interface Hello {
        void sayHello();
    }
    
    class HelloImpl implements Hello {
        @Override
        public void sayHello() {
            System.out.println("Hello World");
        }
    }
    
    class MyInvocationHandler implements InvocationHandler {
        private Object target;
    
        public MyInvocationHandler(Object target) {
            this.target = target;
        }
    
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            System.out.println("Invoking sayHello");
            Object result = method.invoke(target, args);
            return result;
        }
    }
    

    相关文章

      网友评论

          本文标题:【日拱一卒】动态代理使用示例

          本文链接:https://www.haomeiwen.com/subject/jgccjktx.html