diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanDescCache.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanDescCache.java index d1eaa920a..b41d030c2 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanDescCache.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanDescCache.java @@ -6,8 +6,8 @@ import cn.hutool.core.lang.func.Func0; /** * Bean属性缓存
* 缓存用于防止多次反射造成的性能问题 - * @author Looly * + * @author Looly */ public enum BeanDescCache { INSTANCE; @@ -16,12 +16,22 @@ public enum BeanDescCache { /** * 获得属性名和{@link BeanDesc}Map映射 + * * @param beanClass Bean的类 - * @param supplier 对象不存在时创建对象的函数 + * @param supplier 对象不存在时创建对象的函数 * @return 属性名和{@link BeanDesc}映射 * @since 5.4.2 */ - public BeanDesc getBeanDesc(Class beanClass, Func0 supplier){ + public BeanDesc getBeanDesc(Class beanClass, Func0 supplier) { return bdCache.get(beanClass, supplier); } + + /** + * 清空全局的Bean属性缓存 + * + * @since 5.7.21 + */ + public void clear() { + this.bdCache.clear(); + } } diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanInfoCache.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanInfoCache.java index af9b83a54..7a950ba0c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanInfoCache.java +++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanInfoCache.java @@ -56,6 +56,16 @@ public enum BeanInfoCache { getCache(ignoreCase).put(beanClass, fieldNamePropertyDescriptorMap); } + /** + * 清空缓存 + * + * @since 5.7.21 + */ + public void clear() { + this.pdCache.clear(); + this.ignoreCasePdCache.clear(); + } + /** * 根据是否忽略字段名的大小写,返回不用Cache对象 *