code: public <T extends ValueMap> List<T> getList(Object key, Class<T> clazz) {
      Object value = get(key);
      if (value instanceof List) {
        List list = (List) value;
        try {
          ArrayList<T> real = new ArrayList<>();
          for (Object item : list) {
            T typedValue = coerceToValueMap(item, clazz);
            if (typedValue != null) {
              real.add(typedValue);
            }
          }
          return real;
        } catch (Exception ignored) {
        }
      }
      return null;
    }
docs: Returns the value mapped by {@code key} if it exists and is a List of {@code T}. Returns null
  otherwise.