zoukankan      html  css  js  c++  java
  • Java动态代理

    一、定义一个接口

    public interface Plane {
     public void fly();
    }

    二、实现接口中的方法

    public class ManagerImpl implements Plane{

       @Override

       public void fly() {  

         System.out.println("飞机起飞了");

          }  

    }

    三、

    import java.lang.reflect.InvocationHandler;

    import java.lang.reflect.Method;

    public class BusinessHandler implements InvocationHandler{

       private Object object = null;

       public BusinessHandler(Object object) {    

        this.object = object;  

      }

       @Override

       public Object invoke(Object proxy, Method method, Object[] args)    throws Throwable {  

        System.out.println("do something before method");    

        Object ret = method.invoke(this.object, args);     

        System.out.println("do something after method");  

         return ret;

       }

    }

    四、

    import java.lang.reflect.Proxy;

    public class Test {

     public static void main(String[] args) {

         ManagerImpl managerImpl = new ManagerImpl();

           // 业务代理类   

         BusinessHandler securityHandler = new BusinessHandler(managerImpl);

           // 获得代理类($Proxy0 extends Proxy implements Manager)的实例.     

        Plane managerProxy = (Plane) Proxy.newProxyInstance(   

                   managerImpl.getClass().getClassLoader(), managerImpl.getClass().getInterfaces(), securityHandler);

           managerProxy.fly();

       }

    }

  • 相关阅读:
    Docker是什么
    常用架构模式优缺点
    DDD领域模型自动生成?
    组合数【模板】
    组合数【模板】
    HDU 4800 Josephina and RPG【概率dp】
    HDU 4800 Josephina and RPG【概率dp】
    HDU 4424 Conquer a New Region【并查集】【思维题】
    HDU 4424 Conquer a New Region【并查集】【思维题】
    HDU 4427 Math Magic【dp+优化+滚动数组】【好题】
  • 原文地址:https://www.cnblogs.com/lyz459/p/3056905.html
Copyright © 2011-2022 走看看