code: @SuppressWarnings("unchecked")
    public <T> @Nullable T get(@NotNull String key, @NotNull Class<T> clazz) {
      if (clazz == String.class) {
        return (T)getString(key, (String)null);
      }
      if (clazz == Boolean.class) {
        return (T)(Boolean)getBoolean(key, false);
      }
      if (clazz == Integer.class) {
        return (T)(Integer)getInt(key, 0);
      }
      if (clazz == Long.class) {
        return (T)(Long)getLong(key, 0L);
      }
      throw new IllegalArgumentException("Unsupported type: " + clazz.getName());
    }
docs: Extract the value of a named suffix part from this request's suffix
  @param key key of the suffix part
  @param clazz Type expected for return value.
  Only String, Boolean, Integer, Long are supported.
  @param <T> Parameter type.
  @return the value of that named parameter (or the default value if not used)