/**
*
* 接口
*
*/
public interface SystemLogic {
public void sayHello(String username);
}
========================================================================================================
/**
*
* 接口实现类
*
*/
public class SystemLogicImpl implements SystemLogic {
@Override
public void sayHello(String username) {
System.out.println("Hello " + username + "!");
}
}
========================================================================================================
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
/**
*
* 动态代理类
*
*/
public class MyInvocationHandler implements InvocationHandler {
private Object obj;
public MyInvocationHandler(Object obj) {
this.obj = obj;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Object result = method.invoke(this.obj, args);
return result;
}
}
========================================================================================================
import java.lang.reflect.Proxy;
/**
*
* 测试类
*
*/
public class InvocationHandlerTest {
public static void main(String[] args) {
SystemLogicImpl impl = new SystemLogicImpl();
MyInvocationHandler handler = new MyInvocationHandler(impl);
SystemLogic systemLogic = (SystemLogic) Proxy.newProxyInstance(impl.getClass().getClassLoader(), impl.getClass().getInterfaces(), handler);
systemLogic.sayHello("admin");
}
}