cglib执行有参动态代理报错
今天想试试cglib的代理方法,方法是带有参数的
idea中报了这个错误:
Exception in thread "main" java.lang.IllegalArgumentException: Constructor not found
//生成代理类,target是代理目标
public <T>T createProxy(T target,Class[] args,Object[] argsValue){
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(target.getClass());
enhancer.setCallback(this);
return (T) enhancer.create(args,argsValue);
}
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy){
Object result=null;
System.out.println(method.getName());
try {
result =methodProxy.invokeSuper(o,objects);
}catch (Exception e){
System.out.println("error:"+method.getName()+"..");
} catch (Throwable throwable) {
throwable.printStackTrace();
}
return result;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
报错是你传入的target对象找不到对应参数的构造方法,createProxy方法你是怎么调用的?target的class你又是怎么定义的?认真检查一下,如果找不到就把代码贴出来
在当前类内调用本类会报错,在外部调用别的类就不报错。