code: @BackpressureSupport(BackpressureKind.FULL)
      @CheckReturnValue
      @SchedulerSupport(SchedulerSupport.NONE)
      @SuppressWarnings("unchecked")
      public static <T> Flowable<T> concatArray(MaybeSource<? extends T>... sources) {
          ObjectHelper.requireNonNull(sources, "sources is null");
          if (sources.length == 0) {
              return Flowable.empty();
          }
          if (sources.length == 1) {
              return RxJavaPlugins.onAssembly(new MaybeToFlowable<T>((MaybeSource<T>)sources[0]));
          }
          return RxJavaPlugins.onAssembly(new MaybeConcatArray<T>(sources));
      }
docs: Concatenate the single values, in a non-overlapping fashion, of the MaybeSource sources in the array.
  <p>
  <img width="640" height="526" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Maybe.concatArray.png" alt="">
  <dl>
  <dt><b>Backpressure:</b></dt>
  <dd>The returned {@code Flowable} honors the backpressure of the downstream consumer.</dd>
  <dt><b>Scheduler:</b></dt>
  <dd>{@code concatArray} does not operate by default on a particular {@link Scheduler}.</dd>
  </dl>
  @param <T> the value type
  @param sources the array of MaybeSource instances
  @return the new Flowable instance