ImmutableJsonFieldSelectorBuilder implements JsonFieldSelectorBuilder { @Override public JsonFieldSelectorBuilder addFieldDefinition(@Nullable final JsonFieldDefinition fieldDefinition, final JsonFieldDefinition... furtherFieldDefinitions) { requireNonNull(furtherFieldDefinitions, "The further JSON field definitions to be added must not be null!"); addFieldDefinition(fieldDefinition); for (final JsonFieldDefinition furtherFieldDefinition : furtherFieldDefinitions) { addFieldDefinition(furtherFieldDefinition); } return this; } private  ImmutableJsonFieldSelectorBuilder(); static ImmutableJsonFieldSelectorBuilder newInstance(); @Override JsonFieldSelectorBuilder addPointerString(final String pointerString,
            final String... furtherPointerStrings); @Override JsonFieldSelectorBuilder addPointerStrings(final Iterable<String> pointerStrings); @Override JsonFieldSelectorBuilder addPointer(@Nullable final JsonPointer pointer,
            final JsonPointer... furtherPointers); @Override JsonFieldSelectorBuilder addPointers(final Iterable<JsonPointer> pointers); @Override JsonFieldSelectorBuilder addFieldDefinition(@Nullable final JsonFieldDefinition fieldDefinition,
            final JsonFieldDefinition... furtherFieldDefinitions); @Override JsonFieldSelectorBuilder addFieldDefinitions(final Iterable<JsonFieldDefinition> fieldDefinitions); @Override JsonFieldSelectorBuilder addFieldSelector(final JsonFieldSelector fieldSelector); @Override JsonFieldSelectorBuilder addFieldSelectorString(@Nullable final String fieldSelectorString,
            final JsonParseOptions options); @Override JsonFieldSelectorBuilder addFieldSelectorString(@Nullable final String fieldSelectorString); @Override JsonFieldSelectorBuilder removePointer(@Nullable final JsonPointer jsonPointer); @Override JsonFieldSelectorBuilder removePointers(final Iterable<JsonPointer> jsonPointers); @Override JsonFieldSelectorBuilder removePointerString(@Nullable final String pointerString); @Override JsonFieldSelectorBuilder removePointerStrings(final Iterable<String> pointerStrings); @Override JsonFieldSelectorBuilder removeFieldDefinition(@Nullable final JsonFieldDefinition fieldDefinition); @Override JsonFieldSelectorBuilder removeFieldDefinitions(final Iterable<JsonFieldDefinition> fieldDefinitions); @Override Iterator<JsonPointer> iterator(); @Override JsonFieldSelector build(); @Override boolean equals(final Object o); @Override int hashCode(); @Override String toString();  }
@SuppressWarnings("OverlyStrongTypeCast") @Test public void addFieldDefinitionsAsNullVarArgs() { assertThatExceptionOfType(NullPointerException.class) .isThrownBy(() -> underTest.addFieldDefinition(fieldDefinitionA, (JsonFieldDefinition[]) null)) .withMessage("The %s must not be null!", "further JSON field definitions to be added") .withNoCause(); }