code: public static Object newInstance(Class type) {
          Constructor _constructor = null;
          Object[] _constructorArgs = new Object[0];
          try {
              _constructor = type.getConstructor(new Class[] {});// 先尝试默认的空构造函数
          } catch (NoSuchMethodException e) {
              // ignore
          }
  
          if (_constructor == null) {// 没有默认的构造函数，尝试别的带参数的函数
              Constructor[] constructors = type.getConstructors();
              if (constructors.length == 0) {
                  throw new UnsupportedOperationException("Class[" + type.getName() + "] has no public constructors");
              }
              _constructor = constructors[0];// 默认取第一个参数
              Class[] params = _constructor.getParameterTypes();
              _constructorArgs = new Object[params.length];
              for (int i = 0; i < params.length; i++) {
                  _constructorArgs[i] = getDefaultValue(params[i]);
              }
          }
  
          return ReflectUtils.newInstance(_constructor, _constructorArgs);
      }
docs: 特殊处理，允许通过带参数的constructor创建对象
  
  @param type
  @return