docs: 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);
      }