From 9d02dcd5d8795873893b6690a244495858aa12ef Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 18 Jun 2020 15:24:50 +0800 Subject: [PATCH] fix bean bug --- CHANGELOG.md | 1 + .../src/main/java/cn/hutool/core/bean/BeanUtil.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c2608912..ac9af0774 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ### 新特性 ### Bug修复 * 【core 】 修复NumberUtil.partValue有余数问题(issue#I1KX66@Gitee) +* 【core 】 修复BeanUtil.isEmpty不能忽略static字段问题(issue#I1KZI6@Gitee) ------------------------------------------------------------------------------------------------------------- ## 5.3.8 (2020-06-16) diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java index b3e9d17a8..ec4577ce3 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java @@ -690,6 +690,9 @@ public class BeanUtil { final Field[] fields = ReflectUtil.getFields(bean.getClass()); for (Field field : fields) { + if(ModifierUtil.isStatic(field)){ + continue; + } if (ignoreFields != null && ArrayUtil.containsIgnoreCase(ignoreFields, field.getName())) { // 不处理忽略的Fields continue; @@ -723,7 +726,8 @@ public class BeanUtil { } /** - * 判断Bean是否为空对象,空对象表示本身为null或者所有属性都为null + * 判断Bean是否为空对象,空对象表示本身为null或者所有属性都为null
+ * 此方法不判断static属性 * * @param bean Bean对象 * @param ignoreFiledNames 忽略检查的字段名 @@ -733,6 +737,9 @@ public class BeanUtil { public static boolean isEmpty(Object bean, String... ignoreFiledNames) { if (null != bean) { for (Field field : ReflectUtil.getFields(bean.getClass())) { + if(ModifierUtil.isStatic(field)){ + continue; + } if ((false == ArrayUtil.contains(ignoreFiledNames, field.getName())) && null != ReflectUtil.getFieldValue(bean, field)) { return false; @@ -756,6 +763,9 @@ public class BeanUtil { return true; } for (Field field : ReflectUtil.getFields(bean.getClass())) { + if(ModifierUtil.isStatic(field)){ + continue; + } if ((false == ArrayUtil.contains(ignoreFiledNames, field.getName()))// && null == ReflectUtil.getFieldValue(bean, field)) { return true;