code: @SneakyThrows @SuppressWarnings("unchecked")
      public static <T> T create(Class<T> targetClass) {
          val wcClass = WestCacheCglib.class;
          if (wcClass.isAssignableFrom(targetClass))
              return targetClass.newInstance();
  
          return (T) (targetClass.isInterface()
                  ? Cglibs.proxy(Object.class, INTERCEPTOR, targetClass, wcClass)
                  : Cglibs.proxy(targetClass, INTERCEPTOR, wcClass));
  
      }
docs: Create a proxied object of target class.
  <p>
  If the target class is already a sub-class of WestCacheCglib, a
  direct instance object will be created by target class.
  If the target class is an interface or class, a proxied object
  created by cglib will be created. And the method annotated with
  
  @param targetClass target class
  @param <T>         target class type
  @return proxied object.