editor){
+ if (bean == null) {
+ return null;
+ }
+
+ final Field[] fields = ReflectUtil.getFields(bean.getClass());
+ for (Field field : fields) {
+ if (ModifierUtil.isStatic(field)) {
+ continue;
+ }
+ editor.edit(field);
+ }
+ return bean;
+ }
+
/**
* 把Bean里面的String属性做trim操作。此方法直接对传入的Bean做修改。
*
@@ -740,18 +765,10 @@ public class BeanUtil {
* @return 处理后的Bean对象
*/
public static T trimStrFields(T bean, String... ignoreFields) {
- if (bean == null) {
- return null;
- }
-
- final Field[] fields = ReflectUtil.getFields(bean.getClass());
- for (Field field : fields) {
- if (ModifierUtil.isStatic(field)) {
- continue;
- }
+ return edit(bean, (field)->{
if (ignoreFields != null && ArrayUtil.containsIgnoreCase(ignoreFields, field.getName())) {
// 不处理忽略的Fields
- continue;
+ return field;
}
if (String.class.equals(field.getType())) {
// 只有String的Field才处理
@@ -764,9 +781,8 @@ public class BeanUtil {
}
}
}
- }
-
- return bean;
+ return field;
+ });
}
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Editor.java b/hutool-core/src/main/java/cn/hutool/core/lang/Editor.java
index f30c76863..591a87340 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Editor.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Editor.java
@@ -3,12 +3,12 @@ package cn.hutool.core.lang;
/**
* 编辑器接口,常用于对于集合中的元素做统一编辑
* 此编辑器两个作用:
- *
+ *
*
- * 1、如果返回值为null
,表示此值被抛弃
+ * 1、如果返回值为{@code null},表示此值被抛弃
* 2、对对象做修改
*
- *
+ *
* @param 被编辑对象类型
* @author Looly
*/
@@ -16,9 +16,9 @@ package cn.hutool.core.lang;
public interface Editor {
/**
* 修改过滤后的结果
- *
+ *
* @param t 被过滤的对象
- * @return 修改后的对象,如果被过滤返回null
+ * @return 修改后的对象,如果被过滤返回{@code null}
*/
T edit(T t);
}