### Question:
ArgumentAcceptingOptionSpec extends AbstractOptionSpec<V> { @SafeVarargs public final ArgumentAcceptingOptionSpec<V> defaultsTo( V value, V... values ) { addDefaultValue( value ); defaultsTo( values ); return this; } ArgumentAcceptingOptionSpec( String option, boolean argumentRequired );   ArgumentAcceptingOptionSpec( List<String> options, boolean argumentRequired, String description ); final ArgumentAcceptingOptionSpec<T> ofType( Class<T> argumentType ); @SuppressWarnings( "unchecked" ) final ArgumentAcceptingOptionSpec<T> withValuesConvertedBy( ValueConverter<T> aConverter ); final ArgumentAcceptingOptionSpec<V> describedAs( String description ); final ArgumentAcceptingOptionSpec<V> withValuesSeparatedBy( char separator ); final ArgumentAcceptingOptionSpec<V> withValuesSeparatedBy( String separator ); @SafeVarargs final ArgumentAcceptingOptionSpec<V> defaultsTo( V value, V... values ); ArgumentAcceptingOptionSpec<V> defaultsTo( V[] values ); ArgumentAcceptingOptionSpec<V> required(); boolean isRequired(); boolean acceptsArguments(); boolean requiresArgument(); String argumentDescription(); String argumentTypeIndicator(); List<V> defaultValues(); @Override boolean equals( Object that ); @Override int hashCode();  }### Answer:
@Test( expected = NullPointerException.class ) public void rejectsNullDefaultValue() { new RequiredArgumentOptionSpec<Integer>( "d" ).defaultsTo( null ); }
@Test( expected = NullPointerException.class ) public void rejectsNullDefaultValueRemainder() { new RequiredArgumentOptionSpec<Integer>( "d" ).defaultsTo( 2, (Integer[]) null ); }
@Test( expected = NullPointerException.class ) public void rejectsNullInDefaultValueRemainder() { new RequiredArgumentOptionSpec<Integer>( "d" ).defaultsTo( 2, 3, null ); }