code: public static <T> ScopedBindingBuilder createChoice(
        Binder binder,
        String property,
        Key<T> interfaceKey,
        Key<? extends T> defaultKey
    )
    {
      return createChoiceWithDefault(binder, property, interfaceKey, defaultKey, null);
    }
docs: Sets up a "choice" for the injector to resolve at injection time.
  
  @param binder the binder for the injector that is being configured
  @param property the property that will be checked to determine the implementation choice
  @param interfaceKey the interface that will be injected using this choice
  @param defaultKey the default instance to be injected if the property doesn't match a choice.  Can be null
  @param <T> interface type
  @return A ScopedBindingBuilder so that scopes can be added to the binding, if required.