code: @SuppressWarnings("unchecked")
      public static <T> T getEnhancedProxy(Class<T> requiredClazz, Class<?>[] params, Object[] values,
          MethodInterceptor interceptor) {
          Enhancer enhancer = new Enhancer();
          enhancer.setSuperclass(requiredClazz);
          enhancer.setCallback(interceptor);
          return (T) enhancer.create(params, values);
      }
docs: It returns some proxies created by CGLIB.
  
  @param requiredClazz is a {@link java.lang.Class} whose instance should be created
  @param params is an array of @link java.lang.Class}. It should be convenient to
  parameter types of some declared constructor which belongs to desired
  class.
  @param values is an array of @link java.lang.Object}. It should be convenient to
  parameter types of some declared constructor which belongs to desired
  class.
  @param interceptor is the instance of {@link net.sf.cglib.proxy.MethodInterceptor}
  @return a proxied instance of the desired class