diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/FilterIter.java b/hutool-core/src/main/java/cn/hutool/core/collection/FilterIter.java index 9c5ae2201..f4496eb5d 100755 --- a/hutool-core/src/main/java/cn/hutool/core/collection/FilterIter.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/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.accept(object)) { + if (null == filter || filter.accept(object)) { nextObject = object; nextObjectSet = true; return true; diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/FilterIterTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/FilterIterTest.java new file mode 100644 index 000000000..6f36e419e --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/collection/FilterIterTest.java @@ -0,0 +1,31 @@ +package cn.hutool.core.collection; + +import org.junit.Test; + +import java.util.Iterator; + +/** + * {@link FilterIter} 单元测试 + * @author chao.wang + */ +public class FilterIterTest { + + @Test + public void checkFilterIter() { + Iterator it = ListUtil.of("1", "2").iterator(); + // filter 为null + FilterIter filterIter = new FilterIter<>(it, null); + while (filterIter.hasNext()) { + System.out.println(filterIter.next()); + } + + System.out.println(); + it = ListUtil.of("1", "2").iterator(); + // filter 不为空 + filterIter = new FilterIter<>(it, (key) -> key.equals("1")); + while (filterIter.hasNext()) { + System.out.println(filterIter.next()); + } + } + +}