zoukankan      html  css  js  c++  java
  • Java核心技术代理

      本文由广州疯狂软件java培训分享:

      代理模式:

      代理模式支持将方法中的某些操作从实际的对象中分离出来,通过它的代理类来实现这些操作。

      代理类:

      代理类可以创建全新的类,能够实现指定的接口。

      创建一个代理对象,需要使用Proxy类的静态方法

      Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler handler)。

      loader 类加载器。

      interfaces 数组元素是代理对象需要实现的接口。

      handler 调用处理器:

      调用处理器是实现了实现了InvocationHandler接口的类对象,这个接口中只有一个invoke方法。无论何时调用代理对象的方法,调用处理器的invoke方法都会被调用。

      Object invoke(Object proxy, Method method, Object[] args);

      proxy proxy实例

      method proxy实例中的method方法

      args method方法中的参数

      import java.lang.reflect.InvocationHandler;

      import java.lang.reflect.Method;

      import java.lang.reflect.Proxy;

      import java.util.Arrays;

      public class Main {

      public static void main(String[] args) {

      final int MAXN = 1000;

      Object[] objs = new Object[MAXN];

      for (int i = 0; i < MAXN; i++) {

      objs[i] = Proxy.newProxyInstance(null, new Class[] { Comparable.class },

      new TraceHandler(i));

      }

      Arrays.binarySearch(objs, 123);

      }

      }

      class TraceHandler implements InvocationHandler {

      private Object obj;

      public TraceHandler(Object obj) {

      this.obj = obj;

      }

      @Override

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

      System.out.println("******************");

      System.out.println("class: " + proxy.getClass());

      System.out.println("obj: " + obj.toString());

      System.out.println("method: " + method.getName());

      System.out.println("args: " + Arrays.toString(args));

      return method.invoke(obj, args);

      }

      }

      疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

  • 相关阅读:
    css设置兄弟节点的样式(相邻的前一个节点)
    css文本强制两行超出就显示省略号,不显示省略号
    Adobe Photoshop CC2014 for MAC 详细破解步骤
    CSS实现背景图片透明和文字不透明效果
    jquery实现搜索框从中间向两边扩展(左右放大)
    微信小程序拒绝授权后提示信息以及重新授权
    linux下的 sudo ln -s 源文件 目标文件
    小程序实现倒计时:解决ios倒计时失效(setInterval失效)
    浅谈CSS高度坍塌
    sourcetree安装以及跳过sourcetree注册登录
  • 原文地址:https://www.cnblogs.com/gojava/p/3600457.html
Copyright © 2011-2022 走看看