code: public static <T extends IDeepType> T newTypeInstance(Class<T> clazz) {
          try {
              return clazz.newInstance();
          } catch (InstantiationException | IllegalAccessException e) {
              throw new DeepGenericException(e);
          }
      }
docs: Creates a new instance of the given class.
  
  @param <T>   the type parameter
  @param clazz the class object for which a new instance should be created.
  @return the new instance of class clazz.