goja-core/src/main/java/goja/core/kits/reflect/ClassKit.java
public static <T> Constructor<T> getConstructorIfAvailable(Class<T> clazz, Class<?>... paramTypes) {
        Preconditions.checkNotNull(clazz, "Class must not be null");
        try {
            return clazz.getConstructor(paramTypes);
        } catch (NoSuchMethodException ex) {
            return null;
        }
    }
public static <T> Constructor<T> getConstructorIfAvailable(Class<T> clazz, Class<?>... paramTypes) {
        Preconditions.checkNotNull(clazz, "Class must not be null");
        try {
            return clazz.getConstructor(paramTypes);
        } catch (NoSuchMethodException ex) {
            return null;
        }
    }
Determine whether the given class has a public constructor with the given signature,
and return it if available (else return {@code null}).
<p>Essentially translates {@code NoSuchMethodException} to {@code null}.

@param clazz      the clazz to analyze
@param paramTypes the parameter types of the method
@return the constructor, or {@code null} if not found
@see Class#getConstructor