docs: public static <T> T instantiate(Class<T> type) {
          try {
              return BeanIntrospector.SHARED.findIntrospection(type).map(BeanIntrospection::instantiate).orElseGet(() -> {
                  try {
                      Logger log = ClassUtils.REFLECTION_LOGGER;
                      if (log.isDebugEnabled()) {
                          log.debug("Reflectively instantiating type: " + type);
                      }
                      return type.newInstance();
                  } catch (Throwable e) {
                      throw new InstantiationException("Could not instantiate type [" + type.getName() + "]: " + e.getMessage(), e);
                  }
              });
          } catch (Throwable e) {
              throw new InstantiationException("Could not instantiate type [" + type.getName() + "]: " + e.getMessage(), e);
          }
      }