in src/main/java/org/apache/commons/crypto/utils/ReflectionUtils.java [140:157]
public static <T> T newInstance(final Class<T> klass, final Object... args) {
try {
final Constructor<T> ctor;
final int argsLength = args.length;
if (argsLength == 0) {
ctor = klass.getDeclaredConstructor();
} else {
final Class<?>[] argClses = new Class[argsLength];
Arrays.setAll(argClses, i -> args[i].getClass());
ctor = klass.getDeclaredConstructor(argClses);
}
ctor.setAccessible(true);
return ctor.newInstance(args);
} catch (final Exception e) {
throw new IllegalArgumentException(e);
}
}