标签:log void obj 测试 ret getc imp java代理 接口
我是自己理解的,可能会有好多问题。
一 、
//创建一个需要实现display功能的 接口
package com.chinasoft.proxy;
public interface 功能接口 {
void display();
}
二、
//实现类实现display的方法
package com.chinasoft.proxy;
public class 实现功能 implements 功能接口 {
@Override
public void display() {
// TODO Auto-generated method stub
System.out.println("啦啦啦___这就是爱___啦啦啦");
}
}
三、
//代理功能
package com.chinasoft.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.logging.LogManager;
public class 代理功能 implements InvocationHandler {
private Object target;
public 代理功能(Object target) {
super();
this.target = target;
}
public Object getproxy(Class<?> c) {
return Proxy.newProxyInstance(c.getClassLoader(), target.getClass().getInterfaces(), this);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO Auto-generated method stub
System.out.println("------------------before------------------");
Object result=method.invoke(target, args);
System.out.println("-------------------after------------------");
return result;
}
}
四、
//测试
package com.chinasoft.proxy;
public class TestIV {
public static void main(String[] args) {
// TODO Auto-generated method stub
实现功能 i = new 实现功能();//创建功能的实例
代理功能 iv = new 代理功能(i);// 实例化InvocationHandler
功能接口 proxy = (功能接口) iv.getproxy(功能接口.class);//实例化代理
proxy.display();
}
}
五、//测试结果
------------------before------------------
啦啦啦___这就是爱___啦啦啦
-------------------after------------------
标签:log void obj 测试 ret getc imp java代理 接口
原文地址:http://www.cnblogs.com/qiqisx/p/7773792.html