/** * Tries to instantiate an arbitrary instance of the given {@link Class}. * * @param cls that should be instantiated * @param defaultParameters designate specific default parameter values for parameter {@link Class}es * @return the instance */ @SuppressWarnings("unchecked") public static <T> T instantiateSomehow(Class<T> cls, Tuple<Class<?>, Supplier<?>>... defaultParameters) { return instantiateSomehow(cls, Arrays.asList(defaultParameters)); }