首页 > 其他分享 >动态代理举例说明

动态代理举例说明

时间:2023-08-15 15:11:05浏览次数:37  
标签:target int Calculator Object 代理 result 动态 method 举例说明

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

interface Calculator {
    int add(int a, int b);
}

class CalculatorHandler implements InvocationHandler {
    private final Calculator target;

    public CalculatorHandler(Calculator target) {
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("Before method call");
        Object result = method.invoke(target, args);
        System.out.println("After method call");
        return result;
    }
}

public class DynamicProxyExample {
    public static void main(String[] args) {
        Calculator realCalculator = (a, b) -> a + b;
        Calculator proxyCalculator = (Calculator) Proxy.newProxyInstance(
            Calculator.class.getClassLoader(),
            new Class[] { Calculator.class },
            new CalculatorHandler(realCalculator)
        );

        int result = proxyCalculator.add(2, 3);
        System.out.println("Result: " + result);
    }
}

标签:target,int,Calculator,Object,代理,result,动态,method,举例说明
From: https://www.cnblogs.com/jintaocode/p/17631342.html

相关文章

  • HTTP代理出现400错误的原因及解决办法
    在使用HTTP代理过程中,会经常出现各种代码错误的提示,以下是使用HTTP代理出现400代码的原因和解决办法使用HTTP代理时,出现400BadRequest错误代码通常表示客户端发送的请求格式不正确或包含了无效的参数。下面是一些可能导致400错误的原因:请求参数错误:请求中的参数格式不正确或缺少......
  • 跨界电商战略中的Socks5代理与数据抓取
    一、Socks5代理:基本原理与特点Socks5代理(SK5代理)是一种IP代理技术,采用SOCKS5协议。相比传统IP代理,Socks5代理支持TCP和UDP协议,具备更强大的性能和隐私保护能力。Socks5代理工作原理:当用户请求访问目标服务器时,请求经由Socks5代理服务器转发。代理服务器隐藏了用户真实IP地址,将请求......
  • 中电金信:技术实践|Flink多线程实现异构集群的动态负载均衡
    导语:ApacheFlink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。本文主要从实际案例入手并结合作者的实践经验,向各位读者分享当应用场景中异构集群无法做到负载均衡时,如何通过Flink的自定义多线程来实现异构集群的动态负载均衡。●1. 前言●2. 出现的问......
  • 如何优雅的对input框数据进行动态脱敏
    说在前面......
  • 跨界电商战略中的Socks5代理与数据抓取
    一、Socks5代理:基本原理与特点Socks5代理(SK5代理)是一种IP代理技术,采用SOCKS5协议。相比传统IP代理,Socks5代理支持TCP和UDP协议,具备更强大的性能和隐私保护能力。Socks5代理工作原理:当用户请求访问目标服务器时,请求经由Socks5代理服务器转发。代理服务器隐藏了用户真实IP地址,将请求......
  • [Notes] Ubuntu下设置apt-get的代理
    根据不同的ubuntu版本,可以修改/etc/apt/apt.conf文件或者/etc/apt/apt.conf.d/proxy.conf文件的内容。/etc/apt/apt.conf.d/proxy.conf添加如下内容可以实现apt-get的代理设置:Acquire::http::Proxy"http://127.0.0.1:7894";Acquire::https::Proxy"http://127.0.0.1:7894";......
  • 跨境电商选择动态IP还是静态IP?
    随着跨境电商的兴起,选择适合的IP类型对于企业的成功至关重要。在跨境电商中,常见的选择是动态IP和静态IP。下面将就这两种IP类型进行比较,帮助您做出更明智的选择。1.动态IP动态IP是指在一定时间范围内会发生变化的IP地址。跨境电商中使用动态IP具有以下优势:隐私保护:动态IP的变化使得......
  • 7.1 C/C++ 实现动态数组
    动态数组相比于静态数组具有更大的灵活性,因为其大小可以在运行时根据程序的需要动态地进行分配和调整,而不需要在编译时就确定数组的大小。这使得动态数组非常适合于需要动态添加或删除元素的情况,因为它们可以在不浪费空间的情况下根据需要动态增加或减少存储空间。动态数组的内存......
  • 7.2 C/C++ 实现动态链表
    动态链表是一种常用的动态数据结构,可以在运行时动态地申请内存空间来存储数据,相比于静态数组和静态链表,更加灵活和高效。在动态链表中,数据元素被组织成一条链表,每个元素包含了指向下一个元素的指针,这样就可以通过指针将所有元素串联起来。使用动态链表存储数据时,不需要预先申请内......
  • 反射和代理
    一.反射我们通常都是利利⽤用new⽅方式来创建对象实例例,这可以说就是⼀一种“正射”,这种⽅方式在编译时候就确定了了类型信息。⽽而如果,我们想在时候动态地获取类信息、创建类实例例、调⽤用类⽅方法这时候就要⽤用到反射二.反射原理Java程序运行分为编译和运行两个步骤,编译后生成字......