接口类
public interface IFaepUser {
void speak();
}
实现类
public class FaepUser implements IFaepUser{
@Override
public void speak(){
System.out.println("调用speak方法。");
}
}
测试类
public class ReflectUtil2 {
public static void main(String[] args) {
try {
FaepUser fu = new FaepUser();
IFaepUser object = (IFaepUser)Proxy.newProxyInstance(fu.getClass().getClassLoader(), fu.getClass().getInterfaces(), new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("进入代理类。。。");
return method.invoke(fu, args);
}
});
object.speak();
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出结果:
进入代理类。。。
调用speak方法。
其中 Proxy.newProxyInstance强转的时候需要用接口类型,否则会强转出错。因为JDK动态代理是面向接口的。