private T newInstance()

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);
    }
  }