public static <T> Supplier<T> costructor(Constructor<T> constructor, Parameter<?>... parameters) { final Class<?>[] params = constructor.getParameterTypes(); if (params.length == 0) { return new StaticConstructorSupplier<T>(constructor, NO_ARGS); } Argument<?>[] arguments = Argument.arguments(parameterTypes(constructor), parameters); return Argument.allConstants(arguments) ? new StaticConstructorSupplier<T>(constructor, Argument.constantsFrom(arguments)) : new ConstructorSupplier<T>(constructor, arguments); }