code: public static Object newInstance(Class target, Class[] types, Object[] args, boolean makeAccessible) throws InstantiationException,
                                                                                                                  IllegalAccessException,
                                                                                                                  IllegalArgumentException,
                                                                                                                  InvocationTargetException,
                                                                                                                  NoSuchMethodException,
                                                                                                                  SecurityException
      {
          Constructor con;
  
          if (makeAccessible)
          {
              con = target.getDeclaredConstructor(types);
              if (makeAccessible && !con.isAccessible())
              {
                  con.setAccessible(true);
              }
          }
          else
          {
              con = target.getConstructor(types);
          }
          return con.newInstance(args);
      }
docs: Returns a new instance of the given class, using the constructor with the specified parameter types.
  This method can also use private constructors if <code>makeAccessible</code> is set to
  <code>true</code> (and there are no other security constraints).
  
  @param target         The class to instantiate
  @param types          The parameter types
  @param args           The arguments
  @param makeAccessible If the constructor shall be made accessible prior to using it
  @return The instance