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

       }

    }

  • 相关阅读:
    java利用JFreeChart实现各种数据统计图(柱形图,饼图,折线图)
    Java面试题集合(比较实用)
    java实现导出Excel(跨行,跨列)
    使用java类破解MyEclipse
    Oracle的导入导出 DMP 文件
    报表导出功能
    win7_oracle11g_64位连接32位PLSQL_Developer
    oralce11g导出dmp然后导入Oracle10g
    回首向来萧瑟处
    【Python】1.PyQT5界面初尝试
  • 原文地址:https://www.cnblogs.com/lyz459/p/3056905.html
Copyright © 2020-2023  润新知