我用CGLIB要生成动态代理,但是如果被代理的对象的构造器是私有的,那么它就会抛出java.lang.IllegalArgumentException: No visible constructors ,这样的错误,我想请问大侠们这个问题如何跨越,如果用JDK的动态代理,被代理对象又要是实现了接口的,但是我的被代理对象却是没有实现接口的,那么这样情况下,如何解决,谢谢

解决方案 »

  1.   

    把它改为可见吧,如果一个对象本身构造函数是私有的,应该有一个提供对象初始化的放吧
    好像很多都有getInstance()这个方法你还要用代理嘛/?
    原因呢/?
      

  2.   

    因为已经有很多类已经写成私有的构造函数了,他们的目的就是为了构造成单例,所以才把构造函数变成私有的,他们就提供了一个getInstance的返回实例的方法,但是在cglib的Enhancer.create如何使用呢,现在已经有很多这样的类了,我不可能更改他们,我的目的,是在被代理对象方法执行之前写LOG