From 030a27a0df33fbe9dfb6c02f27e016792c64bf18 Mon Sep 17 00:00:00 2001 From: "chao.wang" Date: Mon, 29 Aug 2022 10:24:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3FilterIter=20=E7=B1=BB?= =?UTF-8?q?=E4=B8=AD=E6=9E=84=E9=80=A0=E5=99=A8filter=20=E4=BC=A0=E5=85=A5?= =?UTF-8?q?null=20=E6=97=A0=E6=B3=95=E8=BF=9B=E8=A1=8C=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E5=99=A8=E8=BF=AD=E4=BB=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/hutool/core/collection/FilterIter.java | 2 +- .../core/collection/FilterIterTest.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 hutool-core/src/test/java/cn/hutool/core/collection/FilterIterTest.java 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()); + } + } + +}