本帖最后由 fanyi0829 于 2014-06-19 09:15:23 编辑

解决方案 »

  1.   

    我昨晚仔细对比了一下我修改private为public的class和未经修改的public的class每一个属性有什么不同,最终发现是Construtor里的一个override属性变化了,其他都是相同的.(注,这些属性是在createProxyInstance方法,在eclipse的debug试图variables窗口查看target所看到的.)
    我今天尝试修改这些override属性,以保证private修改后的class和未经修改的public的class所有属性完全一致,看是否通过验证?
      

  2.   

    这个应该能解决了吧,我试了下
     Enhancer enhancer = new Enhancer();
                enhancer.setSuperclass(target);
                enhancer.setCallback(new TecLazyCacheProxy<T>());
                enhancer.setInterceptDuringConstruction(false);
                proxyInstance = (T) enhancer.create();这几句代码因为我没有cglib所以直接换成了proxyInstance = (T) target.newInstance();;没有报错,是正常的,楼主试试,其他代码都没改,还是单例。
      

  3.   


    可能是我没有表达清楚...你这样就没有使用cglib啊,产生的就不是代理,不是代理就不能进cglib的intercept方法,在intercept方法里我是做了一些操作的...
    因此必须产生代理,且为private的单例...
      

  4.   


    我现在已经把override改为一致了,可惜还是通不过cglib...
      

  5.   


    我现在已经把override改为一致了,可惜还是通不过cglib...
    不知道是不是哪里还有不一致的地方,或者说这种思路根本不可行??
      

  6.   

     还在通过cligb的public类 和  被我修改为public的private类有何区别,眼睛都看花了..