src/main/java/io/reactivex/Maybe.java
@CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Maybe<T> fromFuture(Future<? extends T> future, long timeout, TimeUnit unit) {
        ObjectHelper.requireNonNull(future, "future is null");
        ObjectHelper.requireNonNull(unit, "unit is null");
        return RxJavaPlugins.onAssembly(new MaybeFromFuture<T>(future, timeout, unit));
    }
@CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public static <T> Maybe<T> fromFuture(Future<? extends T> future, long timeout, TimeUnit unit) {
        ObjectHelper.requireNonNull(future, "future is null");
        ObjectHelper.requireNonNull(unit, "unit is null");
        return RxJavaPlugins.onAssembly(new MaybeFromFuture<T>(future, timeout, unit));
    }
Converts a {@link Future} into a Maybe, with a timeout on the Future.
<p>
<img width="640" height="315" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/from.Future.png" alt="">
<p>
You can convert any object that supports the {@link Future} interface into a Maybe that emits the
return value of the {@link Future#get} method of that object, by passing the object into the {@code fromFuture}
method.
<p>
Unlike 1.x, disposing the Maybe won't cancel the future. If necessary, one can use composition to achieve the
cancellation effect: {@code futureMaybe.doOnCancel(() -> future.cancel(true));}.
<p>
<em>Important note:</em> This Maybe is blocking on the thread it gets subscribed on; you cannot dispose it.
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code fromFuture} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>

@param future
the source {@link Future}
@param timeout
the maximum time to wait before calling {@code get}
@param unit
the {@link TimeUnit} of the {@code timeout} argument
@param <T>
the type of object that the {@link Future} returns, and also the type of item to be emitted by
the resulting Maybe
@return a Maybe that emits the item from the source {@link Future}
@see <a href="http://reactivex.io/documentation/operators/from.html">ReactiveX operators documentation: From</a>