code: public static <T> ObjectBinding<T> reducing(final ObservableList<T> items, final T defaultValue, final ObservableValue<BinaryOperator<T>> reducer) {
          return Bindings.createObjectBinding(() -> items.stream().reduce(reducer.getValue()).orElse(defaultValue), items, reducer);
      }
docs: Returns an object binding whose value is the reduction of all elements in the list.
  
  @param items        the observable list of elements.
  @param defaultValue the value to be returned if there is no value present, may be null.
  @param reducer      an associative, non-interfering, stateless function for combining two values.
  
  @return an object binding