code: public T newInstance(@NotNull Object... args) {
      Constructor<T> c = constructor;
      boolean accessible = constructor.isAccessible();
      try {
        makeAccessible(c);
        return c.newInstance(args);
      } catch (Throwable t) {
        Throwable cause = targetOf(t);
        if (cause instanceof RuntimeException) {
          throw (RuntimeException) cause;
        }
        throw new ReflectionError("Unable to create a new object from the enclosed constructor", cause);
      } finally {
        setAccessibleIgnoringExceptions(c, accessible);
      }
    }
docs: Invokes the constructor of the specified type with the given arguments.
  <p/>
  Examples:
  <pre>
  // import static {@link org.fest.reflect.core.Reflection#constructor() org.fest.reflect.core.Reflection.constructor};
  
  // Equivalent to 'Person p = new Person()'
  Person p = {@link org.fest.reflect.core.Reflection#constructor() constructor}().{@link org.fest.reflect.constructor.TargetType#in in}(Person.class).{@link org.fest.reflect.constructor.ConstructorInvoker#newInstance newInstance}();
  
  // Equivalent to 'Person p = new Person("Yoda")'
  Person p = {@link org.fest.reflect.core.Reflection#constructor() constructor}().{@link org.fest.reflect.constructor.TargetType#withParameterTypes(Class...) withParameterTypes}(String.class).{@link org.fest.reflect.constructor.ParameterTypes#in(Class) in}(Person.class).{@link org.fest.reflect.constructor.ConstructorInvoker#newInstance newInstance}("Yoda");
  </pre>
  
  @param args the arguments to pass to the constructor (can be zero or more).
  @return the created instance of {@code T}.
  @throws ReflectionError if a new instance cannot be created.