问题原因:参数传错了,你传了两个空的参数进去,另外这个方法getInterfaces()你理解错了, 把最后一个类改一下就行了,改后的代码如下:import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy;public class T { public static void main(String[] args) throws Exception{ UserMgr um = new UserMgrImpl(); InvocationHandler h = new LogHandler(um); try { UserMgr u = (UserMgr)Proxy.newProxyInstance(UserMgr.class.getClassLoader(),UserMgrImpl.class.getInterfaces(),h); u.add(); } catch (IllegalArgumentException e) { e.printStackTrace(); }
把最后一个类改一下就行了,改后的代码如下:import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;public class T {
public static void main(String[] args) throws Exception{
UserMgr um = new UserMgrImpl();
InvocationHandler h = new LogHandler(um);
try {
UserMgr u = (UserMgr)Proxy.newProxyInstance(UserMgr.class.getClassLoader(),UserMgrImpl.class.getInterfaces(),h);
u.add();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}}
运行结果:
日志记录开始
添加学生
日志记录结束
成功生成(总时间:0 秒)