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

    package com.fanShe;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    /**
     * 动态代理类: 
     * 我的理解是: 可以把多个接口中的 方法 统一用 类 的形式管理和使用
     * @param args
     */
    interface Persons{
        void walk();
        void sayHello(String name);
    }
    
    //相当一个中介 动态代理类 中 接口的方法, 都要靠这个接口中的invoke来实现
    class MyInvokationHandler implements InvocationHandler{
    
        /*
         * 三个参数的理解
         * prox:代表 动态代理对象
         * method: 代表 正在执行的方法
         * args: 代表 调用method方法时传入的实参
         */
        public Object invoke(Object proxy,Method method, Object[] args){
            System.out.println("--正在执行的方法: "+method);
            if(args !=null){
                System.out.println("下面是执行该方法时传来的实参为: ");
                for(Object val : args){
                    System.out.println(val);
                }
            }else {
                System.out.println("调用该方法没有实参!");
            }
            return null;
        }
    }
    public class ProxyTest {
    
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            InvocationHandler handler = new MyInvokationHandler();
            /*Proxy :提供创建动态代理类的静态方法
             * 
             * Proxy.newProxyInstance(loader, interfaces, h)
             * 该方法 创建接口的一个实例
             * loader: 类加载器
             * interface: 接口的class 对象
             * h: InvocationHandler 的一个实例
             */
            Persons p =(Persons)Proxy.newProxyInstance(Persons.class.getClassLoader(), new Class[]{Persons.class}, handler);
            p.walk();
            
            p.sayHello("shaoshao");
        }
    }
  • 相关阅读:
    Git 分支开发规范
    小程序技术调研
    弹性布局
    vue 自定义指令的魅力
    记一次基于 mpvue 的小程序开发及上线实战
    mpvue学习笔记-之微信小程序数据请求封装
    微信小程序开发框架 Wepy 的使用
    Hbuilder 开发微信小程序的代码高亮
    luogu3807 【模板】 卢卡斯定理
    luogu1955 [NOI2015] 程序自动分析
  • 原文地址:https://www.cnblogs.com/shaoshao/p/3113678.html
Copyright © 2011-2022 走看看