code: public static Object getNewInstance(Class<?> type) {
          if (instanceCache.containsKey(type))
              return instanceCache.get(type);
          try {
              instanceCache.put(type, type.getConstructor().newInstance());
          } catch ( IllegalArgumentException | ReflectiveOperationException | SecurityException e) {
              instanceCache.put(type, null);
          }
          return instanceCache.get(type);
      }
docs: /*
  Class new instance or null, wrap exception handling and
  instance cache.