动态代理总结:jdk方式代理必须有实现接口否则无法实现
package jdkProxy;
public class Car implements MoveAble {@Override
public void move() {
System.out.println("汽车跑。。。。");
}
}
package jdkProxy;
public interface MoveAble {
public void move();
}
package jdkProxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class Timehardler implements InvocationHandler {
private Object target;
public Timehardler(Object target) {
super();
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("方法前 代理中代码");
method.invoke(target);
System.out.println("方法后 代理中代码");
return null;
}
}
package jdkProxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
public class TestJdkProxy {
public static void main(String[] args) {
Car car = new Car();
InvocationHandler h = new Timehardler(car);
Class<?> cls = car.getClass();
MoveAble move = (MoveAble) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), h);
move.move();
}
}