### Question:
ConstructorUtils { public static <C> Constructor<C> getConstructor(Class<C> type, Class<?>[] givenTypes) throws NoSuchMethodException { return type.getConstructor(givenTypes); } private  ConstructorUtils(); static Constructor<C> getConstructor(Class<C> type, Class<?>[] givenTypes); static Class<?>[] getConstructorParameters(Class<?> type, Class<?>[] givenTypes); static Iterable<Function<Object[], Object[]>> getTransformers(Constructor<?> constructor);  }### Answer:
@Test public void getDefaultConstructor() { Class<?>[] args = {}; Constructor<?> emptyDefaultConstructor = getConstructor(ProjectionExample.class, args); Constructor<?> nullDefaultConstructor = getConstructor(ProjectionExample.class, null); assertNotNull(emptyDefaultConstructor); assertNotNull(nullDefaultConstructor); assertTrue(isEmpty(emptyDefaultConstructor.getParameterTypes()) && isEmpty(nullDefaultConstructor.getParameterTypes())); }
@Test public void getSimpleConstructor() { Class<?>[] args = {Long.class}; Constructor<?> constructor = getConstructor(ProjectionExample.class, args); assertNotNull(constructor); assertArrayEquals(args, constructor.getParameterTypes()); }