code: public static <C, A> Callback<C, A> callback(Class<C> callbackType,
  			C callbackInstance, A argument, Object... additionalArguments) {
  		Assert.notNull(callbackType, "CallbackType must not be null");
  		Assert.notNull(callbackInstance, "CallbackInstance must not be null");
  		return new Callback<>(callbackType, callbackInstance, argument,
  				additionalArguments);
  	}
docs: Start a call to a single callback instance, dealing with common generic type
  concerns and exceptions.
  @param callbackType the callback type (a {@link FunctionalInterface functional
  interface})
  @param callbackInstance the callback instance (may be a lambda)
  @param argument the primary argument passed to the callback
  @param additionalArguments any additional arguments passed to the callback
  @param <C> the callback type
  @param <A> the primary argument type
  @return a {@link Callback} instance that can be invoked.