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();

       }

    }

  • 相关阅读:
    mysql 卸载 linux
    mybatis教程
    Python操作Redis的5种数据类型
    python+selenium 浏览器无界面模式运行
    关闭Sublime Text 3的自动更新
    ui自动化-则神第一天02-学习练习一个网址写脚本
    ui自动化-则神第一天01-html基础和元素定位之面试问题
    ui自动化-则神第一天01
    字典的学习
    安全测试的测试整理
  • 原文地址:https://www.cnblogs.com/lyz459/p/3056905.html
Copyright © 2011-2022 走看看