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