code: public final Mono<T> last(T defaultValue) {
  	    if (this instanceof Callable) {
  		    @SuppressWarnings("unchecked")
  		    Callable<T> thiz = (Callable<T>)this;
  		    if(thiz instanceof Fuseable.ScalarCallable){
  		    	@SuppressWarnings("unchecked")
  			    Fuseable.ScalarCallable<T> c = (Fuseable.ScalarCallable<T>)thiz;
  			    T v;
  			    try {
  				    v = c.call();
  			    }
  			    catch (Exception e) {
  				    return Mono.error(e);
  			    }
  			    if(v == null){
  			    	return Mono.just(defaultValue);
  			    }
  			    return Mono.just(v);
  		    }
  		    Mono.onAssembly(new MonoCallable<>(thiz));
  	    }
  		return Mono.onAssembly(new MonoTakeLastOne<>(this, defaultValue));
  	}
docs: Emit the last element observed before complete signal as a {@link Mono}, or emit
  the {@code defaultValue} if the source was empty.
  For a passive version use {@link #takeLast(int)}
  
  <p>
  <img class="marble" src="doc-files/marbles/lastWithDefault.svg" alt="">
  
  @reactor.discard This operator discards elements before the last.
  
  @param defaultValue  a single fallback item if this {@link Flux} is empty
  @return a {@link Mono} with the last value in this {@link Flux}