code: private static <T> T create(Class<T> type, Constructor<T> constructor, Object... params)
      {
          Check.notNull(type);
          Check.notNull(constructor);
          Check.notNull(params);
  
          try
          {
              setAccessible(constructor, true);
              return constructor.newInstance(params);
          }
          catch (final IllegalArgumentException exception)
          {
              throw new LionEngineException(exception,
                                            ERROR_CONSTRUCTOR
                                                       + type
                                                       + " "
                                                       + Arrays.asList(constructor.getParameterTypes())
                                                       + ERROR_WITH
                                                       + Arrays.asList(params));
          }
          catch (final InstantiationException | IllegalAccessException | InvocationTargetException exception)
          {
              throw new LionEngineException(exception, ERROR_CONSTRUCTOR + type);
          }
      }
docs: Create a class instance with its parameters.
  
  @param <T> The element type used.
  @param type The class type to instantiate (must not be <code>null</code>).
  @param constructor The constructor to use (must not be <code>null</code>).
  @param params The constructor parameters (must not be <code>null</code>).
  @return The class instance.
  @throws LionEngineException If invalid parameters or unable to create the instance.