public static <T> Supplier<T> debounce(final Supplier<T> function, final int delayMilliseconds) {
        return new Supplier<T>() {
            private java.util.concurrent.ScheduledFuture<T> timeout;

            @Override
            public T get() {
                clearTimeout(timeout);
                timeout = delay(function, delayMilliseconds);
                return null;
            }
        };
    }
public static < T > Supplier < T > debounce ( final Supplier < T > function , final int delayMilliseconds ) { return new Supplier < T > ( ) { private java . util . concurrent . ScheduledFuture < T > timeout ; @ Override public T get ( ) { clearTimeout ( timeout ) ; timeout = delay ( function , delayMilliseconds ) ; return null ; } } ; }
/*
Documented, #debounce