private <T> Iterator<T> emptyIt() {
        return new Iterator<T>() {
            @Override
            public boolean hasNext() {
                return false;
            }
            @Override
            public T next() {
                return null;
            }
        };
    }
private < T > Iterator < T > emptyIt ( ) { return new Iterator < T > ( ) { @ Override public boolean hasNext ( ) { return false ; } @ Override public T next ( ) { return null ; } } ; }
An empty iterator with hasNext always false.
@param <T> generic type,
since java can't infer it will be Object
@return the null iterator