@NotNull
    public static <T> Stream<T> generate(@NotNull final Supplier<T> supplier) {
        Objects.requireNonNull(supplier);
        return new Stream<T>(new ObjGenerate<T>(supplier));
    }
@ NotNull public static < T > Stream < T > generate ( @ NotNull final Supplier < T > supplier ) { Objects . requireNonNull ( supplier ) ; return new Stream < T > ( new ObjGenerate < T > ( supplier ) ) ; }
Creates a {@code Stream} by elements that generated by {@code Supplier}.

@param <T> the type of the stream elements
@param supplier  the {@code Supplier} of generated elements
@return the new stream
@throws NullPointerException if {@code supplier} is null