@SuppressWarnings("unchecked")
    public Builder hiddenImpl(String className, Class<?>... types) {
      // don't do any work if an implementation has been found
      if (ctor != null) {
        return this;
      }

      try {
        Class targetClass = Class.forName(className, true, loader);
        hiddenImpl(targetClass, types);
      } catch (NoClassDefFoundError | ClassNotFoundException e) {
        // cannot load this implementation
        problems.put(className, e);
      }
      return this;
    }
Set the {@link ClassLoader} used to lookup classes by name.

<p>If not set, the current thread's ClassLoader is used.

@param newLoader a ClassLoader
@return this Builder for method chaining
amoro-common/src/main/java/org/apache/amoro/utils/DynConstructors.java