美文网首页
java筑基-动态代理

java筑基-动态代理

作者: 卫泽洪_70a7 | 来源:发表于2021-12-26 16:44 被阅读0次

    两个接口:IMassage.java , IWash.java

    public interface IMassage {
        void massage();
    }
    
    public interface IWash {
        void wash();
    }
    
    

    Lucy.java实现了这两个接口

    public class Lucy implements IMassage,IWash{
        @Override
        public void massage() {
            System.out.println("lucy 正在按摩......");
        }
    
        @Override
        public void wash() {
            System.out.println("lucy 正在足浴......");
        }
    }
    

    main方法:

    public static void main(String[] args) {
            final Lucy lucy = new Lucy();
            //动态代理实现
            Object o = Proxy.newProxyInstance(
                    Main.class.getClassLoader(),
                    new Class[]{IMassage.class, IWash.class},
                    new InvocationHandler() {
                        @Override
                        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                            System.out.println("代理");
                            //method.invoke(proxy,args);
                            return method.invoke(lucy,args);
                        }
                    }
            );
            ((IMassage)o).massage();
            ((IWash)o).wash();
        }
    

    打印结果:

    代理
    lucy 正在按摩......
    代理
    lucy 正在足浴......
    

    完成!!!

    相关文章

      网友评论

          本文标题:java筑基-动态代理

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