code: public static LongStream of(final Supplier<LongList> supplier) {
          final LongIterator iter = new LongIteratorEx() {
              private LongIterator iterator = null;
  
              @Override
              public boolean hasNext() {
                  if (iterator == null) {
                      init();
                  }
  
                  return iterator.hasNext();
              }
  
              @Override
              public long nextLong() {
                  if (iterator == null) {
                      init();
                  }
  
                  return iterator.nextLong();
              }
  
              private void init() {
                  final LongList c = supplier.get();
  
                  if (N.isNullOrEmpty(c)) {
                      iterator = LongIterator.empty();
                  } else {
                      iterator = c.iterator();
                  }
              }
          };
  
          return of(iter);
      }
docs: Lazy evaluation.
  @param supplier
  @return