java动态代理
接口
public interface Calculator {
int add(int i, int j);
}
实现类
public class MyCalculator implements Calculator {
@Override
public int add(int i, int j) {
return i + j;
}
}
测试
public class ProxyTest {
@Test
public void test() throws Exception {
String className = "basic.proxy.Calculator";
Calculator calculator = new MyCalculator();
// 获取代理对象
Calculator proxy = (Calculator) Proxy.newProxyInstance(Class.forName(className).getClassLoader(),
new Class[] { Calculator.class }, new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return method.invoke(calculator, args);
}
});
proxy.add(2, 2);
}
}