code: public static <T> T newInstance(final Class<T> clazz) {
          Constructor<?>[] constructors = getAllConstructorsOfClass(clazz, true);
          if (constructors == null || constructors.length == 0) {
              return null;
          }
          Object[] initParameters = getInitParameters(constructors[0].getParameterTypes());
          try {
              @SuppressWarnings("unchecked")
              T instance = (T) constructors[0].newInstance(initParameters);
              return instance;
          } catch (Exception e) {
              log.error("newInstance", e);
              return null;
          }
      }
docs: 使用反射新建一个对象，尽全力去新建，如果没有默认构造方法也支持
  
  @param clazz 类型
  @param <T>   T
  @return 对象