web/play-java-forms/src/main/java/play/data/Form.java
@SuppressWarnings("unchecked")
  public Form<T> bind(
      Lang lang, TypedMap attrs, Map<String, String> data, String... allowedFields) {
    return bind(lang, attrs, data, Collections.emptyMap(), allowedFields);
  }
@SuppressWarnings("unchecked")
  public Form<T> bind(
      Lang lang, TypedMap attrs, Map<String, String> data, String... allowedFields) {
    return bind(lang, attrs, data, Collections.emptyMap(), allowedFields);
  }
Binds data to this form - that is, handles form submission.

@param lang used for validators and formatters during binding and is part of {@link
ValidationPayload}. Later also used for formatting when retrieving a field (via {@link
#field(String)} or {@link #apply(String)}) and for translations in {@link #errorsAsJson()}.
For these methods the lang can be change via {@link #withLang(Lang)}.
@param attrs will be passed to validators via {@link ValidationPayload}
@param data data to submit
@param allowedFields the fields that should be bound to the form, all fields if not specified.
@return a copy of this form filled with the new data