### Question:
UtilReflection { @SuppressWarnings("unchecked") public static <T> Constructor<T> getCompatibleConstructorParent(Class<T> type, Class<?>[] paramTypes) throws NoSuchMethodException { Check.notNull(type); Check.notNull(paramTypes); for (final Constructor<?> current : type.getDeclaredConstructors()) { final Class<?>[] constructorTypes = current.getParameterTypes(); if (constructorTypes.length == paramTypes.length && hasCompatibleConstructorParent(paramTypes, constructorTypes)) { return (Constructor<T>) current; } } throw new NoSuchMethodException(ERROR_NO_CONSTRUCTOR_COMPATIBLE + type.getName() + ERROR_WITH + Arrays.asList(paramTypes)); } private  UtilReflection(); static T create(Class<T> type, Class<?>[] paramTypes, Object... params); @SuppressWarnings("unchecked") static T createReduce(Class<T> type, Object... params); static Class<?>[] getParamTypes(Object... arguments); @SuppressWarnings("unchecked") static Constructor<T> getCompatibleConstructor(Class<T> type, Class<?>... paramTypes); @SuppressWarnings("unchecked") static Constructor<T> getCompatibleConstructorParent(Class<T> type, Class<?>[] paramTypes); static T getMethod(Object object, String name, Object... params); static T getField(Object object, String name); static void setAccessible(AccessibleObject object, boolean accessible); static Collection<Class<?>> getInterfaces(Class<?> object, Class<?> base);  }### Answer:
@Test void testGetCompatibleConstructorParent() throws NoSuchMethodException { assertNotNull(UtilReflection.getCompatibleConstructorParent(String.class, UtilReflection.getParamTypes(new Object()))); }