code: @SuppressWarnings("unchecked")
      static <T> T autoMap(ResultSet rs, Class<T> cls) {
          try {
              if (cls.isInterface()) {
                  return autoMapInterface(rs, cls);
              } else {
                  int n = rs.getMetaData().getColumnCount();
                  for (Constructor<?> c : cls.getDeclaredConstructors()) {
                      if (n == c.getParameterTypes().length) {
                          return autoMap(rs, (Constructor<T>) c);
                      }
                  }
                  throw new RuntimeException(
                          "constructor with number of parameters=" + n + "  not found in " + cls);
              }
          } catch (SQLException e) {
              throw new SQLRuntimeException(e);
          }
      }
docs: Converts the ResultSet column values into parameters to the constructor
  (with number of parameters equals the number of columns) of type
  <code>T</code> then returns an instance of type <code>T</code>. See See
  {@link Builder#autoMap(Class)}.
  
  @param cls
  the class of the resultant instance
  @return an automapped instance