private <T> T invokeMethod(@NonNls String methodName, final boolean ignoreErrors, Object... params) {
    final Class helperClass = myHelper.getClass();
    final Class[] types = new Class[params.length];
    try {
      for (int idx = 0; idx < params.length; idx++) {
        types[idx] = params[idx].getClass();
      }
      return (T)helperClass.getMethod(methodName, types).invoke(myHelper, params);
    }
    catch (IllegalAccessException | NoSuchMethodException e) {
      if (!ignoreErrors) {
        LOG.error(e);
      }
    }
    catch (InvocationTargetException e) {
      final Throwable cause = e.getCause();
      ExceptionUtil.rethrowUnchecked(cause);
      if (!ignoreErrors) {
        LOG.error(e);
      }
    }
    return null;
  }
private <T> T invokeMethod(@NonNls String methodName, final boolean ignoreErrors, Object... params)