zoukankan      html  css  js  c++  java
  • 对象代理模板Java代码

    package cn.zlc.domain;

    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;

    public class DyProxy implements InvocationHandler {

     // 原对象(真实对象,目标对象)StudentServiceImpl--->StudentStaticProxy(代理对象)
     private Object targetObject;

     // 把真实对象(原对象)通过此方法传入
     // 此方法的返回值为代理对象
     public Object getProxy(Object targetObject) {

      this.targetObject = targetObject;
      // 根据原对象产生代理对象
      // 参数1:原对象所属类的加载器
      // 参数2:原对象所属类的借口
      // 参数3:实现了InvocationHandler接口的对象
      return Proxy.newProxyInstance(this.targetObject.getClass()
        .getClassLoader(),
        this.targetObject.getClass().getInterfaces(), this);

     }

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

      // 声明一个返回值变量
      Object ret = null;

      try {

       
       // 回调原对象中的方法
       
       /* if(method.getName().equals("addStudent")){
       check();
        } */
       
       
       ret = method.invoke(this.targetObject, args);
       
      

       throw new RuntimeException();

      } catch (Exception e) {
               
       check();
       e.printStackTrace();
      }

      return ret;
     }

     public void check() {

      System.out.println("============安全性检查============");
     }

    }

  • 相关阅读:
    NOIP 2017逛公园(记忆化搜索)
    NOIP 2012疫情控制 (二分+倍增+贪心)
    NOIP 2005过河(DP+路径压缩)
    P1198 [JSOI2008]最大数
    [Noip2016]蚯蚓
    [六省联考2017]期末考试
    六省联考:组合数问题
    蒜头君的兔子
    bzoj1015 [JSOI2008]星球大战starwar
    luogu P3370 【模板】字符串哈希
  • 原文地址:https://www.cnblogs.com/alvin-perfect/p/4390065.html
Copyright © 2011-2022 走看看