code: public <T> List<T> getList(final Object key, final Class<T> clazz, final List<T> defaultValue) {
          notNull("defaultValue", defaultValue);
          notNull("clazz", clazz);
          return constructValuesList(key, clazz, defaultValue);
      }
docs: Gets the list value of the given key, casting the list elements to {@code Class<T>} or returning the default list value if null.
  This is useful to avoid having casts in client code, though the effect is the same.
  
  @param key   the key
  @param clazz the non-null class to cast the list value to
  @param defaultValue what to return if the value is null
  @param <T>   the type of the class
  @return the list value of the given key, or the default list value if the instance does not contain this key.
  @throws ClassCastException if the value of the given key is not of type T
  @since 3.10