zoukankan      html  css  js  c++  java
  • JDK动态代理

    JDK动态代理又忘了,已经学习第四遍了,最简单的实现如下。

    package com.houjun.JDKDynamicProxy;
    
    /**
     * @Author: HouJun
     * @Date: 2019/10/10 9:11
     * @Description: 接口
     * @version: 1.0
     */
    public interface Subject {
        void doSomething();
    }
    package com.houjun.JDKDynamicProxy;
    
    /**
     * @Author: HouJun
     * @Date: 2019/10/10 9:11
     * @Description: 被代理类
     * @version: 1.0
     */
    public class ImplSubject implements Subject{
        @Override
        public void doSomething() {
            System.out.println("被代理类执行了");
        }
    }
    package com.houjun.JDKDynamicProxy;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    
    /**
     * @Author: HouJun
     * @Date: 2019/10/10 9:13
     * @Description: com.houjun.JDKDynamicProxy
     * @version: 1.0
     */
    public class Test {
        public static void main(String[] args) {
            ImplSubject implSubject = new ImplSubject();
    
            Subject s = (Subject) Proxy.newProxyInstance(implSubject.getClass().getClassLoader(), implSubject.getClass().getInterfaces(), new InvocationHandler() {
                @Override
                public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                    System.out.println("");
                    Object invoke = method.invoke(implSubject, args);
                    System.out.println("");
                    return invoke;
                }
            });
            s.doSomething();
        }
    }
  • 相关阅读:
    Linux驱动学习时间、延迟及延缓操作3
    Windows 系统下Git安装图解
    [整理]Android Intent和PendingIntent的区别
    C++篇实现MD5算法
    重温数据结构——(2)
    重温数据结构——(1)
    红黑树——1.介绍与查找
    Ubuntu Telnet 服务
    文本框垂直居中
    文本框透明无边框
  • 原文地址:https://www.cnblogs.com/houj/p/11645927.html
Copyright © 2011-2022 走看看