code: @SuppressWarnings("unchecked")
      public static <T> Constructor<T> getCallableConstructorForParams(final Class<T> type, final Class<?>... params) {
          for (Constructor<T> c : (Constructor<T>[]) type.getConstructors()) {
              final Class<?>[] parameterTypes = c.getParameterTypes();
              if (!Arrays.equals(parameterTypes, params)) {
                  continue;
              }
              return c;
          }
          return null;
      }
docs: Search for a suitable constructor which is invokable by the given parameter types. Similar to
  {@code Class.getConstructor(...)}, but does not require parameter equality and does not throw
  exceptions.
  
  @param type
  @param params
  @return constructor or null if no matching constructor was found.