docs: public static Object instantiate(String classname, Properties info, boolean tryString,
        String stringarg) throws ClassNotFoundException, SecurityException, NoSuchMethodException,
            IllegalArgumentException, InstantiationException, IllegalAccessException,
            InvocationTargetException {
      Object[] args = {info};
      Constructor<?> ctor = null;
      Class<?> cls = Class.forName(classname);
      try {
        ctor = cls.getConstructor(Properties.class);
      } catch (NoSuchMethodException nsme) {
        if (tryString) {
          try {
            ctor = cls.getConstructor(String.class);
            args = new String[]{stringarg};
          } catch (NoSuchMethodException nsme2) {
            tryString = false;
          }
        }
        if (!tryString) {
          ctor = cls.getConstructor((Class[]) null);
          args = null;
        }
      }
      return ctor.newInstance(args);
    }