@SuppressWarnings("unchecked")
  String getStringValue(Object obj, int k) {
    if ((obj instanceof ArgHolder<?>)
        && ((ArgHolder<?>) obj).getType().equals(String.class)) {
      return ((ArgHolder<String>) obj).getValue();
    } else if (obj instanceof String[]) {
      return ((String[]) obj)[k];
    } else {
      verify(false, "object doesn't contain String values");
      return null;
    }
  }