当前位置:首页 > CN2资讯 > 正文内容

java动态代理demojava动态代理

7小时前CN2资讯

首先一个接口

public interface MyInterface {


    void method1(String arg);
}

再写一个接口实现类

public class MyInterfaceImpl implements MyInterface {


    /*
     * (non-Javadoc)
     * @see reflectStudy.MyInterface#method1()
     */
    @Override
    public void method1(String arg) {
        System.out.println("MyInterfaceImpl:arg=" + arg);


    }


}

然后就是代理类,

动态代理: 如果想要完成动态代理,首先需要定义一个InvocationHandler接口的子类,已完成代理的具体操作。

public class MyInvocationHandler implements InvocationHandler {


    private Object obj = null;


    public Object getNewInstance(Object obj) {
        this.obj = obj;
        return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);
    }


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


        return method.invoke(this.obj, args);
    }


}

client测试

/**
     * 
     * 
     * @throws Throwable
     * @throws SecurityException
     */
    private static void invocationHandler2() throws SecurityException, Throwable {
        MyInvocationHandler demo = new MyInvocationHandler();
        MyInterface impl = (MyInterface) demo.getNewInstance(new MyInterfaceImpl());
        String arg = "hello";
        Object[] objs = new Object[] { arg };
        demo.invoke(impl, MyInterface.class.getMethods()[0], objs);
        impl.method1("helllo");
 
    }

run result:

       MyInterfaceImpl:arg=hello
       MyInterfaceImpl:arg=helllo


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/32216.html

    分享给朋友:

    “java动态代理demojava动态代理” 的相关文章

    Contabo高性价比VPS与服务器托管解决方案 - 稳定高效的经济选择

    Contabo是一家成立于2003年的德国老牌主机商,凭借高性价比和大容量存储方案在市场中占据了一席之地。作为一家历史悠久的服务提供商,Contabo始终致力于为用户提供稳定、高效且经济的托管解决方案。无论是个人站长、中小型企业还是开发团队,Contabo都能满足多样化的需求。其市场定位非常清晰:以...

    如何使用Luminati(Bright Data)代理服务获取数据与保护隐私

    Luminati(Bright Data)概述不仅体现了其代理服务的强大与全面,还带领我们了解这一行业的演变与发展。作为全球最大的住宅代理服务提供商,Luminati(现被称为Bright Data)凭借其超过720万个真实用户IP,突显了自身在代理市场中的领先地位。您可能会想,为什么会有如此多的I...

    蘑菇云:自然与核爆炸的惊人现象及其深远影响

    蘑菇云这个词,一提起来让人既熟悉又敬畏。它的外形就像个倒立的蘑菇,顶部宽大、底部则较小,这是因为它源自于强大爆炸所产生的气体。这种云朵看似平常,却是一种强烈爆炸后气体与空气混合的结果。虽然蘑菇云在现代多被与核爆炸联系在一起,但实际上,火山喷发及一些天体撞击也可能产生自然形成的蘑菇云。 了解蘑菇云的形...

    VPS去程测试:提升网络性能的关键策略与工具

    在当今数字化时代,VPS(虚拟专用服务器)为各类用户提供了极大的灵活性和控制力。为了确保这种服务能够表现出色,VPS去程测试成为了一个重要的话题。简单来说,去程测试是指从我本地设备到VPS服务器的数据传输路径的检查。这种测试能够帮助我了解数据包在传输过程中的表现,包括延迟和可能的瓶颈。 去程测试的重...

    Debian 修改 DNS 的详细步骤与常见问题解决方案

    在讨论 Debian 中的 DNS 修改前,我想先和大家分享一些关于 DNS 的基本信息。DNS(Domain Name System)是互联网的“电话簿”,它将我们可读的网站地址(如 www.example.com)转换为计算机能够理解的 IP 地址。这一过程对于我们浏览网页、发送邮件等操作至关重...

    如何获取和使用evoxt优惠码,轻松享受购物乐趣与实惠

    在如今这个充满折扣与优惠的购物时代,获得evoxt的优惠码变得尤为重要。我还是忍不住想和大家分享一些获取这些优惠码的实用方法。这样不仅能够节省开支,还能在消费时感受到更多的乐趣。 官方网站注册及会员优惠 首先,我要强调的就是在evoxt的官方网站上注册一个账户。这一步真的很重要。注册后,你可以直接享...