public static <T> Constructor<T> bestConstructor(Constructor<T>[] constructors, Class<?>[] argTypes) throws AmbiguousConstructorMatchException {
        try {
            return best(constructors, collectSignatures(constructors), collectVarArgs(constructors), argTypes);
        } catch (AmbiguousSignatureMatchException e) {
            throw new AmbiguousConstructorMatchException(e, constructors);
        }
    }
public static < T > Constructor < T > bestConstructor ( Constructor < T > [ ] constructors , Class < ? > [ ] argTypes ) throws AmbiguousConstructorMatchException { try { return best ( constructors , collectSignatures ( constructors ) , collectVarArgs ( constructors ) , argTypes ) ; } catch ( AmbiguousSignatureMatchException e ) { throw new AmbiguousConstructorMatchException ( e , constructors ) ; } }
Selects the best constructor for the given argument types.
@param <T>
@param constructors
@param argTypes
@return constructor, or {@code null}
@throws AmbiguousSignatureMatchException if multiple constructors match equally