• java的动态代理


    动态代理类

    package itbuluoge.proxy;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    
    public class DynamicProxy implements InvocationHandler{
    
    	private Object obj;
    	public Object bind(Object obj)
    	{
    		this.obj=obj;
    		return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);
    	}
    	public Object invoke(Object arg0, Method method, Object[] args)
    			throws Throwable {
    		Object result=null;
    		try
    		{
    			validateUser();
    			result=method.invoke(obj,args);
    		}
    		catch(Exception e)
    		{
    			e.printStackTrace();
    		}
    		return result;
    	}
    	
    	public void validateUser()
    	{
    		System.out.println("验证用户...");
    	}
    
    }
    


    測试类

    package itbuluoge.proxy;
    
    public class TestDynamic {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		DynamicProxy dp=new DynamicProxy();
    		ICompent com=(ICompent)dp.bind(new Compent());
    		com.bussiness1();
    		com.bussiness2();
    		com.bussiness3();
    	}
    
    }
    


    输出结果



    静态代理见文章:http://blog.csdn.net/itbuluoge/article/details/40046377

  • 相关阅读:
    hdu--4336--概率dp
    hdu--3905--dp
    codeforces--279--
    hdu--5023--线段树
    正则表达式
    vim编辑器使用
    圆头像控件,自动监听点击跳转到Activity
    ImageView切换两种状态下的模式
    string字符串截取
    Class对象获取方法
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7246502.html
Copyright © 2020-2023  润新知