in iep-service/src/main/java/com/netflix/iep/service/DefaultClassFactory.java [58:81]
private <T> T newInstance(
Type type,
Constructor<?> c,
Type[] ptypes,
Function<Type, Object> overrides) throws CreationException {
try {
c.setAccessible(true);
if (ptypes.length == 0) {
return (T) c.newInstance();
} else {
Object[] pvalues = new Object[ptypes.length];
for (int i = 0; i < ptypes.length; ++i) {
pvalues[i] = overrides.apply(ptypes[i]);
if (pvalues[i] == null) {
pvalues[i] = bindings.apply(ptypes[i]);
}
}
return (T) c.newInstance(pvalues);
}
} catch (Exception e) {
throw new CreationException(type, e);
}
}