code: public static <T> String requiredString(Map<String, T> map, String key) {
          return requiredStringOfType(map, key, "string");
      }
docs: Validates that the value from {@code map} for the given {@code key} is
  present and a string. Returns the value when valid; otherwise, throws an
  {@code IllegalArgumentException}.
  @param map a map
  @param key a key
  @param <T> the type of value
  @return the string value
  @throws java.util.NoSuchElementException if the required value is not
  present
  @throws java.lang.IllegalArgumentException if the value is in valid