code: public <V> ChronoFormatter<T> withDefault(
          ChronoElement<V> element,
          V value
      ) {
  
          if (element == null) {
              throw new NullPointerException("Missing element.");
          }
  
          Map<ChronoElement<?>, Object> defaultMap = new HashMap<>();
          defaultMap.put(element, value);
          return new ChronoFormatter<>(this, defaultMap);
  
      }
docs: /*[deutsch]
  <p>Legt einen Standard-Ersatzwert f&uuml;r das angegebene Element
  fest, wenn die Interpretation sonst nicht funktioniert. </p>
  
  <p>Beispiel: </p>
  
  <pre>
  ChronoFormatter&lt;PlainDate&gt; fmt =
  ChronoFormatter.ofDatePattern(&quot;MM-dd&quot;, PatternType.CLDR, Locale.getDefault())
  .withDefault(PlainDate.YEAR, 2012);
  PlainDate date = fmt.parse(&quot;05-21&quot;);
  System.out.println(date); // 2012-05-21
  </pre>
  
  <p>Standard-Ersatzwerte werden von Time4J herangezogen, wenn entweder
  der Formatierer das fragliche Element nicht enth&auml;lt oder wenn es
  keine konsumierbaren Zeichen f&uuml;r das angegebene Element gibt.
  Die letzte Situation erfordert manchmal die Verwendung des sektionalen
  Attributs {@code PROTECTED_CHARACTERS}, um eine Situation zu simulieren,
  in der der Formatierer quasi am Ende eines Texts angekommen ist. </p>
  
  @param   <V> generic element value type
  @param   element     chronological element to be updated
  @param   value       replacement value or {@code null}
  if the default value shall be deregistered
  @return  changed copy with new replacement value
  @throws  IllegalArgumentException if given element is not supported
  by the underlying chronology
  @see     Attributes#PROTECTED_CHARACTERS