docs: public static <T, U, X extends RuntimeException> U convertBean(T source, Class<U> targetClass,
              Supplier<X> exceptionSupplier) {
          Objects.requireNonNull(targetClass,"TargetClass can not be null");
          if (Objects.isNull(source)) {
              return SupplierUtil.ifNonNullThrowOrElse(exceptionSupplier, () -> null);
          }
          Handler handler = ConverterContext.getActionHandler(source.getClass(), targetClass);
          log.info("Call method \"{}\"", handler.getMethod());
          try {
              return targetClass.cast(handler.getMethod().invoke(handler.getHandler(), source));
          } catch (IllegalAccessException | InvocationTargetException e) {
              throw ConvertException.of("Call method \"" + handler.getMethod() + "\" failed", e);
          }
      }