diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
index 329c37d5d..fb6783402 100644
--- a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
@@ -1315,20 +1315,20 @@ public class CollUtil {
}
/**
- * 移除集合中的多个元素,并将结果存放到生成的新集合中后返回
+ * 移除集合中的多个元素,并将结果存放到生成的新集合中后返回
* 此方法直接修改原集合
*
* @param 集合类型
* @param 集合元素类型
* @param targetCollection 被操作移除元素的集合
- * @param filter 用于是否移除判断的过滤器
+ * @param predicate 用于是否移除判断的过滤器
* @return 移除结果的集合
+ * @since 5.7.17
*/
- @SuppressWarnings("unchecked")
- public static , E> T removeWithAddIf(T targetCollection, Predicate super E> filter) {
- Collection resultCollection = new ArrayList<>();
- removeWithAddIf(targetCollection, resultCollection, filter);
- return (T) resultCollection;
+ public static , E> List removeWithAddIf(T targetCollection, Predicate super E> predicate) {
+ final List removed = new ArrayList<>();
+ removeWithAddIf(targetCollection, removed, predicate);
+ return removed;
}
/**
diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java
index 833d4a79b..bd889916f 100644
--- a/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/collection/CollUtilTest.java
@@ -45,7 +45,7 @@ public class CollUtilTest {
ArrayList exceptRemovedList = CollUtil.newArrayList(2, 3);
ArrayList exceptResultList = CollUtil.newArrayList(1);
- ArrayList resultList = CollUtil.removeWithAddIf(list, ele -> 1 == ele);
+ List resultList = CollUtil.removeWithAddIf(list, ele -> 1 == ele);
Assert.assertEquals(list, exceptRemovedList);
Assert.assertEquals(resultList, exceptResultList);