diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/iter/FilterIter.java b/hutool-core/src/main/java/cn/hutool/core/collection/iter/FilterIter.java index 6ace3bbc7..ca7e81c12 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/iter/FilterIter.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/iter/FilterIter.java @@ -84,7 +84,7 @@ public class FilterIter implements Iterator { private boolean setNextObject() { while (iterator.hasNext()) { final E object = iterator.next(); - if (null != filter && filter.test(object)) { + if (null == filter || filter.test(object)) { nextObject = object; nextObjectSet = true; return true; diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/iter/FilterIterTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/iter/FilterIterTest.java new file mode 100755 index 000000000..79cacae3c --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/collection/iter/FilterIterTest.java @@ -0,0 +1,23 @@ +package cn.hutool.core.collection.iter; + +import cn.hutool.core.collection.ListUtil; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Iterator; + +public class FilterIterTest { + + @Test + public void iterNullTest(){ + final Iterator it = ListUtil.of("1", "2").iterator(); + final FilterIter filterIter = new FilterIter<>(it, null); + int count = 0; + while (filterIter.hasNext()) { + if(null != filterIter.next()){ + count++; + } + } + Assert.assertEquals(2, count); + } +}